@@ -913,9 +913,9 @@ public override Operand Evaluate(AlgorithmEngine work, Func<AlgorithmEngine, str
913913 return Operand . Create ( args1 . NumberValue == args2 . NumberValue ) ;
914914 } else if ( args1 . IsText ) {
915915 return Operand . Create ( args1 . TextValue == args2 . TextValue ) ;
916- } else if ( args1 . IsBoolean ) {
916+ } else if ( args1 . IsBoolean ) {
917917 return Operand . Create ( args1 . BooleanValue == args2 . BooleanValue ) ;
918- } else if ( args1 . IsDate ) {
918+ } else if ( args1 . IsDate ) {
919919 args1 = args1 . ToNumber ( ) ;
920920 args2 = args2 . ToNumber ( ) ;
921921 return Operand . Create ( args1 . NumberValue == args2 . NumberValue ) ;
@@ -977,7 +977,7 @@ public override Operand Evaluate(AlgorithmEngine work, Func<AlgorithmEngine, str
977977 return Operand . Create ( args1 . NumberValue != args2 . NumberValue ) ;
978978 } else if ( args1 . IsText ) {
979979 return Operand . Create ( args1 . TextValue != args2 . TextValue ) ;
980- } else if ( args1 . IsBoolean ) {
980+ } else if ( args1 . IsBoolean ) {
981981 return Operand . Create ( args1 . BooleanValue != args2 . BooleanValue ) ;
982982 } else if ( args1 . IsDate ) {
983983 args1 = args1 . ToNumber ( ) ;
@@ -1307,7 +1307,11 @@ public override Operand Evaluate(AlgorithmEngine work, Func<AlgorithmEngine, str
13071307 // 在程序中,&& and 有true 直接返回true 就不会检测下一个会不会报错
13081308 // 在程序中,|| or 有false 直接返回false 就不会检测下一个会不会报错
13091309 var args1 = func1 . Evaluate ( work , tempParameter ) ; if ( args1 . IsNotBoolean ) { args1 = args1 . ToBoolean ( ) ; if ( args1 . IsError ) { return args1 ; } }
1310- if ( args1 . BooleanValue == false ) return Operand . False ;
1310+ if ( args1 . BooleanValue == false ) {
1311+ var args2 = func2 . Evaluate ( work , tempParameter ) . ToBoolean ( ) ;
1312+ if ( args2 . IsError ) { return args2 ; }
1313+ return Operand . False ;
1314+ }
13111315 return func2 . Evaluate ( work , tempParameter ) . ToBoolean ( ) ;
13121316 }
13131317 public override void ToString ( StringBuilder stringBuilder , bool addBrackets )
@@ -1333,7 +1337,11 @@ public override Operand Evaluate(AlgorithmEngine work, Func<AlgorithmEngine, str
13331337 // 在程序中,&& and 有true 直接返回true 就不会检测下一个会不会报错
13341338 // 在程序中,|| or 有false 直接返回false 就不会检测下一个会不会报错
13351339 var args1 = func1 . Evaluate ( work , tempParameter ) ; if ( args1 . IsNotBoolean ) { args1 = args1 . ToBoolean ( ) ; if ( args1 . IsError ) { return args1 ; } }
1336- if ( args1 . BooleanValue ) return Operand . True ;
1340+ if ( args1 . BooleanValue ) {
1341+ var args2 = func2 . Evaluate ( work , tempParameter ) . ToBoolean ( ) ;
1342+ if ( args2 . IsError ) { return args2 ; }
1343+ return Operand . True ;
1344+ }
13371345 return func2 . Evaluate ( work , tempParameter ) . ToBoolean ( ) ;
13381346 }
13391347
0 commit comments