Skip to content

Commit af28a42

Browse files
committed
优化
1 parent 1322d6d commit af28a42

File tree

5 files changed

+46
-40
lines changed

5 files changed

+46
-40
lines changed

csharp/ToolGood.Algorithm/Internals/Functions/FunctionBase.cs

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ public override string ToString()
3939
/// <param name="addBrackets">true to enclose the string representation in brackets; otherwise, false.</param>
4040
public abstract void ToString(StringBuilder stringBuilder, bool addBrackets);
4141
}
42-
42+
43+
#region 1 2 3 4 N
44+
4345
internal abstract class Function_1 : FunctionBase
4446
{
4547
protected FunctionBase func1;
@@ -51,7 +53,7 @@ protected Function_1(FunctionBase func1)
5153
protected void AddFunction(StringBuilder stringBuilder, string functionName)
5254
{
5355
stringBuilder.Append(functionName);
54-
stringBuilder.Append("(");
56+
stringBuilder.Append('(');
5557
func1.ToString(stringBuilder, false);
5658
stringBuilder.Append(')');
5759
}
@@ -68,10 +70,10 @@ public Function_2(FunctionBase func1, FunctionBase func2)
6870
this.func2 = func2;
6971
}
7072

71-
protected void AddFunction(StringBuilder stringBuilder,string functionName)
73+
protected void AddFunction(StringBuilder stringBuilder, string functionName)
7274
{
7375
stringBuilder.Append(functionName);
74-
stringBuilder.Append("(");
76+
stringBuilder.Append('(');
7577
func1.ToString(stringBuilder, false);
7678
if (func2 != null) {
7779
stringBuilder.Append(", ");
@@ -96,7 +98,7 @@ protected Function_3(FunctionBase func1, FunctionBase func2, FunctionBase func3)
9698
protected void AddFunction(StringBuilder stringBuilder, string functionName)
9799
{
98100
stringBuilder.Append(functionName);
99-
stringBuilder.Append("(");
101+
stringBuilder.Append('(');
100102
func1.ToString(stringBuilder, false);
101103
if (func2 != null) {
102104
stringBuilder.Append(", ");
@@ -127,7 +129,7 @@ protected Function_4(FunctionBase func1, FunctionBase func2, FunctionBase func3,
127129
protected void AddFunction(StringBuilder stringBuilder, string functionName)
128130
{
129131
stringBuilder.Append(functionName);
130-
stringBuilder.Append("(");
132+
stringBuilder.Append('(');
131133
func1.ToString(stringBuilder, false);
132134
if (func2 != null) {
133135
stringBuilder.Append(", ");
@@ -157,7 +159,7 @@ protected Function_N(FunctionBase[] funcs)
157159
protected void AddFunction(StringBuilder stringBuilder, string functionName)
158160
{
159161
stringBuilder.Append(functionName);
160-
stringBuilder.Append("(");
162+
stringBuilder.Append('(');
161163
for (int i = 0; i < funcs.Length; i++) {
162164
if (i > 0) {
163165
stringBuilder.Append(", ");
@@ -167,7 +169,7 @@ protected void AddFunction(StringBuilder stringBuilder, string functionName)
167169
stringBuilder.Append(')');
168170
}
169171
}
170-
172+
#endregion
171173

172174
#region * / % + - &
173175

@@ -1016,7 +1018,7 @@ public override void ToString(StringBuilder stringBuilder, bool addBrackets)
10161018

10171019
#endregion AND OR
10181020

1019-
1021+
10201022
#region Lookup
10211023

10221024
internal class Function_VLOOKUP : Function_N
@@ -1030,28 +1032,22 @@ public override Operand Calculate(AlgorithmEngine work)
10301032
var args = new List<Operand>();
10311033
foreach (var item in funcs) { var aa = item.Calculate(work); if (aa.IsError) { return aa; } args.Add(aa); }
10321034

1033-
var args1 = args[0].ToArray("Function VLOOKUP parameter 1 error!");
1034-
if (args1.IsError) { return args1; }
1035+
var args1 = args[0].ToArray("Function VLOOKUP parameter 1 error!"); if (args1.IsError) { return args1; }
10351036
var args2 = args[1];
1036-
1037-
var args3 = args[2].ToNumber("Function VLOOKUP parameter 3 is error!");
1038-
if (args3.IsError) { return args3; }
1037+
var args3 = args[2].ToNumber("Function VLOOKUP parameter 3 is error!"); if (args3.IsError) { return args3; }
10391038

10401039
var vague = true;
10411040
if (args.Count == 4) {
1042-
var args4 = args[3].ToBoolean("Function VLOOKUP parameter 4 is error!");
1043-
if (args4.IsError) { return args4; }
1041+
var args4 = args[3].ToBoolean("Function VLOOKUP parameter 4 is error!"); if (args4.IsError) { return args4; }
10441042
vague = args4.BooleanValue;
10451043
}
10461044
if (args2.Type != OperandType.NULL) {
1047-
var sv = args2.ToText("Function VLOOKUP parameter 2 is error!");
1048-
if (sv.IsError) { return sv; }
1045+
var sv = args2.ToText("Function VLOOKUP parameter 2 is error!"); if (sv.IsError) { return sv; }
10491046
args2 = sv;
10501047
}
10511048

10521049
foreach (var item in args1.ArrayValue) {
1053-
var o = item.ToArray("Function VLOOKUP parameter 1 error!");
1054-
if (o.IsError) { return o; }
1050+
var o = item.ToArray("Function VLOOKUP parameter 1 error!"); if (o.IsError) { return o; }
10551051
if (o.ArrayValue.Count > 0) {
10561052
var o1 = o.ArrayValue[0];
10571053
int b = -1;
@@ -1114,5 +1110,5 @@ public override void ToString(StringBuilder stringBuilder, bool addBrackets)
11141110

11151111
#endregion Lookup
11161112

1117-
1113+
11181114
}

csharp/ToolGood.Algorithm/Internals/Functions/FunctionBase.csharp.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -917,7 +917,7 @@ public override Operand Calculate(AlgorithmEngine work)
917917
} else if (v.IsDouble) {
918918
if (v.NumberValue.ToString() == args2.TextValue) { return Operand.True; }
919919
} else if (v.IsBoolean) {
920-
if (v.BooleanValue.ToString().ToUpper() == args2.TextValue) { return Operand.True; }
920+
if (v.BooleanValue.ToString().Equals(args2.TextValue, StringComparison.CurrentCultureIgnoreCase)) { return Operand.True; }
921921
}
922922
}
923923
} else {
@@ -969,7 +969,7 @@ public override Operand Calculate(AlgorithmEngine work)
969969
} else if (v.IsDouble) {
970970
if (v.NumberValue.ToString() == args2.TextValue) { return Operand.True; }
971971
} else if (v.IsBoolean) {
972-
if (v.BooleanValue.ToString().ToUpper() == args2.TextValue) { return Operand.True; }
972+
if (v.BooleanValue.ToString().Equals(args2.TextValue, StringComparison.CurrentCultureIgnoreCase)) { return Operand.True; }
973973
}
974974
}
975975
} else {
@@ -980,7 +980,7 @@ public override Operand Calculate(AlgorithmEngine work)
980980
} else if (v.IsDouble) {
981981
if (v.NumberValue.ToString() == args2.TextValue) { return Operand.True; }
982982
} else if (v.IsBoolean) {
983-
if (v.BooleanValue.ToString().ToUpper() == args2.TextValue) { return Operand.True; }
983+
if (v.BooleanValue.ToString().Equals(args2.TextValue, StringComparison.CurrentCultureIgnoreCase)) { return Operand.True; }
984984
}
985985
}
986986
}

csharp/ToolGood.Algorithm/Internals/Functions/FunctionBase.value.cs

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,28 @@ namespace ToolGood.Algorithm.Internals.Functions
99
internal class Function_Value : FunctionBase
1010
{
1111
private Operand _value;
12+
private string _showName;
1213

1314
public Function_Value(Operand value)
1415
{
1516
_value = value;
1617
}
18+
public Function_Value(Operand value, string showName)
19+
{
20+
_value = value;
21+
_showName = showName;
22+
}
1723

1824
public override Operand Calculate(AlgorithmEngine work)
1925
{
2026
return _value;
2127
}
2228
public override void ToString(StringBuilder stringBuilder, bool addBrackets)
2329
{
30+
if (string.IsNullOrEmpty(_showName) == false) {
31+
stringBuilder.Append(_showName);
32+
return;
33+
}
2434
if (_value.Type == OperandType.TEXT) {
2535
stringBuilder.Append('"');
2636
var stringValue = _value.TextValue;
@@ -133,13 +143,13 @@ public override Operand Calculate(AlgorithmEngine work)
133143
}
134144
public override void ToString(StringBuilder stringBuilder, bool addBrackets)
135145
{
136-
stringBuilder.Append("[");
146+
stringBuilder.Append('[');
137147
if (string.IsNullOrEmpty(name)) {
138148
func1.ToString(stringBuilder, false);
139149
} else {
140150
stringBuilder.Append(name);
141151
}
142-
stringBuilder.Append("]");
152+
stringBuilder.Append(']');
143153
}
144154
}
145155

@@ -209,21 +219,21 @@ public override Operand Calculate(AlgorithmEngine work)
209219
}
210220
}
211221
}
212-
return Operand.Error(" Operator is error!");
222+
return Operand.Error("Operator is error!");
213223
}
214224
public override void ToString(StringBuilder stringBuilder, bool addBrackets)
215225
{
216226
func1.ToString(stringBuilder, false);
217-
stringBuilder.Append("[");
227+
stringBuilder.Append('[');
218228
func2.ToString(stringBuilder, false);
219-
stringBuilder.Append("]");
229+
stringBuilder.Append(']');
220230
}
221231
}
222232

223233

224234
internal class Function_DiyFunction : Function_N
225235
{
226-
private string funName;
236+
private readonly string funName;
227237

228238
public Function_DiyFunction(string name, FunctionBase[] funcs) : base(funcs)
229239
{
@@ -239,7 +249,7 @@ public override Operand Calculate(AlgorithmEngine work)
239249
public override void ToString(StringBuilder stringBuilder, bool addBrackets)
240250
{
241251
stringBuilder.Append(funName);
242-
stringBuilder.Append("(");
252+
stringBuilder.Append('(');
243253
for (int i = 0; i < funcs.Length; i++) {
244254
if (i > 0) {
245255
stringBuilder.Append(", ");
@@ -290,7 +300,7 @@ public override Operand Calculate(AlgorithmEngine work)
290300
}
291301
public override void ToString(StringBuilder stringBuilder, bool addBrackets)
292302
{
293-
stringBuilder.Append("{");
303+
stringBuilder.Append('{');
294304
for (int i = 0; i < funcs.Length; i++) {
295305
if (i > 0) {
296306
stringBuilder.Append(", ");
@@ -303,7 +313,7 @@ public override void ToString(StringBuilder stringBuilder, bool addBrackets)
303313

304314
internal class Function_ArrayJsonItem : Function_1
305315
{
306-
private string key;
316+
private readonly string key;
307317

308318
public Function_ArrayJsonItem(string key, FunctionBase func1) : base(func1)
309319
{
@@ -320,7 +330,7 @@ public override Operand Calculate(AlgorithmEngine work)
320330
public override void ToString(StringBuilder stringBuilder, bool addBrackets)
321331
{
322332
stringBuilder.Append(key);
323-
stringBuilder.Append(":");
333+
stringBuilder.Append(':');
324334
func1.ToString(stringBuilder, false);
325335
}
326336

csharp/ToolGood.Algorithm/Internals/MathFunctionVisitor.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -215,12 +215,12 @@ public FunctionBase VisitFALSE_fun(mathParser.FALSE_funContext context)
215215

216216
public FunctionBase VisitE_fun(mathParser.E_funContext context)
217217
{
218-
return new Function_Value(Operand.Create(Math.E));
218+
return new Function_Value(Operand.Create(Math.E),"E");
219219
}
220220

221221
public FunctionBase VisitPI_fun(mathParser.PI_funContext context)
222222
{
223-
return new Function_Value(Operand.Create(Math.PI));
223+
return new Function_Value(Operand.Create(Math.PI),"PI");
224224
}
225225

226226
public FunctionBase VisitABS_fun(mathParser.ABS_funContext context)
@@ -1927,7 +1927,7 @@ public FunctionBase VisitNUM_fun(mathParser.NUM_funContext context)
19271927
public FunctionBase VisitNum(mathParser.NumContext context)
19281928
{
19291929
var d = decimal.Parse(context.GetText(), NumberStyles.Any, CultureInfo.InvariantCulture);
1930-
return new Function_Value(Operand.Create(d));
1930+
return new Function_Value(Operand.Create(d), context.GetText());
19311931
}
19321932

19331933
public FunctionBase VisitUnit(mathParser.UnitContext context)
@@ -1962,7 +1962,7 @@ public FunctionBase VisitSTRING_fun(mathParser.STRING_funContext context)
19621962

19631963
public FunctionBase VisitNULL_fun(mathParser.NULL_funContext context)
19641964
{
1965-
return new Function_Value(Operand.CreateNull());
1965+
return new Function_Value(Operand.CreateNull(),"NULL");
19661966
}
19671967

19681968
public FunctionBase VisitPARAMETER_fun(mathParser.PARAMETER_funContext context)
@@ -2055,7 +2055,7 @@ public FunctionBase VisitArrayJson_fun(mathParser.ArrayJson_funContext context)
20552055
public FunctionBase VisitArrayJson(mathParser.ArrayJsonContext context)
20562056
{
20572057
string keyName = null;
2058-
KeyValue keyValue = new KeyValue();
2058+
//KeyValue keyValue = new KeyValue();
20592059
if (context.NUM() != null) {
20602060
if (int.TryParse(context.NUM().GetText(), out int key)) {
20612061
keyName = key.ToString();

csharp/ToolGood.Algorithm/ToolGood.Algorithm.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<Product>ToolGood.Algorithm</Product>
2020
<PackageLicenseFile>LICENSE</PackageLicenseFile>
2121
<SignAssembly>true</SignAssembly>
22-
<Version>5.0.0.0</Version>
22+
<Version>5.0.0.1</Version>
2323
<AssemblyOriginatorKeyFile>ToolGood.Algorithm.snk</AssemblyOriginatorKeyFile>
2424
<DelaySign>false</DelaySign>
2525
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\ToolGood.Algorithm.xml</DocumentationFile>

0 commit comments

Comments
 (0)