@@ -38,10 +38,7 @@ public override string ToString()
3838 /// <param name="stringBuilder">The StringBuilder to which the string representation will be appended. Cannot be null.</param>
3939 /// <param name="addBrackets">true to enclose the string representation in brackets; otherwise, false.</param>
4040 public abstract void ToString ( StringBuilder stringBuilder , bool addBrackets ) ;
41-
42-
4341 }
44-
4542
4643 internal abstract class Function_1 : FunctionBase
4744 {
@@ -51,6 +48,13 @@ protected Function_1(FunctionBase func1)
5148 {
5249 this . func1 = func1 ;
5350 }
51+ protected void AddFunction ( StringBuilder stringBuilder , string functionName )
52+ {
53+ stringBuilder . Append ( functionName ) ;
54+ stringBuilder . Append ( "(" ) ;
55+ func1 . ToString ( stringBuilder , false ) ;
56+ stringBuilder . Append ( ')' ) ;
57+ }
5458 }
5559
5660 internal abstract class Function_2 : FunctionBase
@@ -63,8 +67,19 @@ public Function_2(FunctionBase func1, FunctionBase func2)
6367 this . func1 = func1 ;
6468 this . func2 = func2 ;
6569 }
66- }
6770
71+ protected void AddFunction ( StringBuilder stringBuilder , string functionName )
72+ {
73+ stringBuilder . Append ( functionName ) ;
74+ stringBuilder . Append ( "(" ) ;
75+ func1 . ToString ( stringBuilder , false ) ;
76+ if ( func2 != null ) {
77+ stringBuilder . Append ( ", " ) ;
78+ func2 . ToString ( stringBuilder , false ) ;
79+ }
80+ stringBuilder . Append ( ')' ) ;
81+ }
82+ }
6883
6984 internal abstract class Function_3 : FunctionBase
7085 {
@@ -78,6 +93,21 @@ protected Function_3(FunctionBase func1, FunctionBase func2, FunctionBase func3)
7893 this . func2 = func2 ;
7994 this . func3 = func3 ;
8095 }
96+ protected void AddFunction ( StringBuilder stringBuilder , string functionName )
97+ {
98+ stringBuilder . Append ( functionName ) ;
99+ stringBuilder . Append ( "(" ) ;
100+ func1 . ToString ( stringBuilder , false ) ;
101+ if ( func2 != null ) {
102+ stringBuilder . Append ( ", " ) ;
103+ func2 . ToString ( stringBuilder , false ) ;
104+ if ( func3 != null ) {
105+ stringBuilder . Append ( ", " ) ;
106+ func3 . ToString ( stringBuilder , false ) ;
107+ }
108+ }
109+ stringBuilder . Append ( ')' ) ;
110+ }
81111 }
82112
83113 internal abstract class Function_4 : FunctionBase
@@ -94,6 +124,25 @@ protected Function_4(FunctionBase func1, FunctionBase func2, FunctionBase func3,
94124 this . func3 = func3 ;
95125 this . func4 = func4 ;
96126 }
127+ protected void AddFunction ( StringBuilder stringBuilder , string functionName )
128+ {
129+ stringBuilder . Append ( functionName ) ;
130+ stringBuilder . Append ( "(" ) ;
131+ func1 . ToString ( stringBuilder , false ) ;
132+ if ( func2 != null ) {
133+ stringBuilder . Append ( ", " ) ;
134+ func2 . ToString ( stringBuilder , false ) ;
135+ if ( func3 != null ) {
136+ stringBuilder . Append ( ", " ) ;
137+ func3 . ToString ( stringBuilder , false ) ;
138+ if ( func4 != null ) {
139+ stringBuilder . Append ( ", " ) ;
140+ func4 . ToString ( stringBuilder , false ) ;
141+ }
142+ }
143+ }
144+ stringBuilder . Append ( ')' ) ;
145+ }
97146 }
98147
99148 internal abstract class Function_N : FunctionBase
@@ -104,6 +153,19 @@ protected Function_N(FunctionBase[] funcs)
104153 {
105154 this . funcs = funcs ;
106155 }
156+
157+ protected void AddFunction ( StringBuilder stringBuilder , string functionName )
158+ {
159+ stringBuilder . Append ( functionName ) ;
160+ stringBuilder . Append ( "(" ) ;
161+ for ( int i = 0 ; i < funcs . Length ; i ++ ) {
162+ if ( i > 0 ) {
163+ stringBuilder . Append ( ", " ) ;
164+ }
165+ funcs [ i ] . ToString ( stringBuilder , false ) ;
166+ }
167+ stringBuilder . Append ( ')' ) ;
168+ }
107169 }
108170
109171
@@ -925,14 +987,7 @@ public override Operand Calculate(AlgorithmEngine work)
925987
926988 public override void ToString ( StringBuilder stringBuilder , bool addBrackets )
927989 {
928- stringBuilder . Append ( "AND(" ) ;
929- for ( int i = 0 ; i < funcs . Length ; i ++ ) {
930- if ( i > 0 ) {
931- stringBuilder . Append ( ", " ) ;
932- }
933- funcs [ i ] . ToString ( stringBuilder , false ) ;
934- }
935- stringBuilder . Append ( ')' ) ;
990+ AddFunction ( stringBuilder , "AND" ) ;
936991 }
937992 }
938993
@@ -955,14 +1010,7 @@ public override Operand Calculate(AlgorithmEngine work)
9551010 }
9561011 public override void ToString ( StringBuilder stringBuilder , bool addBrackets )
9571012 {
958- stringBuilder . Append ( "OR(" ) ;
959- for ( int i = 0 ; i < funcs . Length ; i ++ ) {
960- if ( i > 0 ) {
961- stringBuilder . Append ( ", " ) ;
962- }
963- funcs [ i ] . ToString ( stringBuilder , false ) ;
964- }
965- stringBuilder . Append ( ')' ) ;
1013+ AddFunction ( stringBuilder , "OR" ) ;
9661014 }
9671015 }
9681016
@@ -1060,14 +1108,7 @@ public override Operand Calculate(AlgorithmEngine work)
10601108 }
10611109 public override void ToString ( StringBuilder stringBuilder , bool addBrackets )
10621110 {
1063- stringBuilder . Append ( "VLOOKUP(" ) ;
1064- for ( int i = 0 ; i < funcs . Length ; i ++ ) {
1065- if ( i > 0 ) {
1066- stringBuilder . Append ( ", " ) ;
1067- }
1068- funcs [ i ] . ToString ( stringBuilder , false ) ;
1069- }
1070- stringBuilder . Append ( ')' ) ;
1111+ AddFunction ( stringBuilder , "VLOOKUP" ) ;
10711112 }
10721113 }
10731114
0 commit comments