4 types derived from BinaryExpression
System.Linq.Expressions (4)
System\Linq\Expressions\BinaryExpression.cs (4)
458internal sealed class LogicalBinaryExpression : BinaryExpression 472internal class AssignBinaryExpression : BinaryExpression 511internal sealed class CoalesceConversionBinaryExpression : BinaryExpression 546internal class SimpleBinaryExpression : BinaryExpression
928 references to BinaryExpression
Microsoft.AspNetCore.Components.Endpoints (5)
FormMapping\Factories\ComplexType\ComplexTypeExpressionConverterFactoryOfT.cs (5)
171var failedAndHasHandler = Expression.And(Expression.Not(succeeded), HasHandler(context)); 173var clause = model.Type.IsValueType ? failedAndHasHandler : 214static BinaryExpression HasHandler(ParameterExpression context) 355var propertyConverter = Expression.Assign( 455var constructorParameterConverter = Expression.Assign(
Microsoft.AspNetCore.Components.Forms (3)
FieldIdentifier.cs (1)
144case BinaryExpression binaryExpression when binaryExpression.NodeType == ExpressionType.ArrayIndex:
src\Components\Shared\src\ExpressionFormatting\ExpressionFormatter.cs (2)
81var binaryExpression = (BinaryExpression)node;
Microsoft.AspNetCore.Components.Web (2)
src\Components\Shared\src\ExpressionFormatting\ExpressionFormatter.cs (2)
81var binaryExpression = (BinaryExpression)node;
Microsoft.AspNetCore.Http.Extensions (12)
RequestDelegateFactory.cs (5)
107private static readonly BinaryExpression TempSourceStringNotNullExpr = Expression.NotEqual(TempSourceStringExpr, Expression.Constant(null)); 108private static readonly BinaryExpression TempSourceStringNullExpr = Expression.Equal(TempSourceStringExpr, Expression.Constant(null)); 1989var boundValueExpr = Expression.ArrayIndex(BoundValuesArrayExpr, Expression.Constant(factoryContext.ParameterBinders.Count - 1)); 2141var initializeReaderExpr = Expression.Assign( 2149var setMaxRecursionDepthExpr = Expression.Assign(
src\Components\Endpoints\src\FormMapping\Factories\ComplexType\ComplexTypeExpressionConverterFactoryOfT.cs (5)
171var failedAndHasHandler = Expression.And(Expression.Not(succeeded), HasHandler(context)); 173var clause = model.Type.IsValueType ? failedAndHasHandler : 214static BinaryExpression HasHandler(ParameterExpression context) 355var propertyConverter = Expression.Assign( 455var constructorParameterConverter = Expression.Assign(
src\Shared\ObjectMethodExecutor\ObjectMethodExecutor.cs (2)
209var valueObj = Expression.ArrayIndex(parametersParameter, Expression.Constant(i)); 261var valueObj = Expression.ArrayIndex(parametersParameter, Expression.Constant(i));
Microsoft.AspNetCore.JsonPatch (2)
JsonPatchDocumentOfT.cs (2)
682var binaryExpression = (BinaryExpression)expr;
Microsoft.AspNetCore.Mvc.Core (2)
src\Shared\ObjectMethodExecutor\ObjectMethodExecutor.cs (2)
209var valueObj = Expression.ArrayIndex(parametersParameter, Expression.Constant(i)); 261var valueObj = Expression.ArrayIndex(parametersParameter, Expression.Constant(i));
Microsoft.AspNetCore.Mvc.ViewFeatures (5)
CachedExpressionCompiler.cs (1)
246var nullTest = isNullableValueType ?
ExpressionHelper.cs (4)
73var binaryExpression = (BinaryExpression)part; 158var binaryExpression = (BinaryExpression)part;
Microsoft.AspNetCore.OpenApi (2)
src\Shared\ObjectMethodExecutor\ObjectMethodExecutor.cs (2)
209var valueObj = Expression.ArrayIndex(parametersParameter, Expression.Constant(i)); 261var valueObj = Expression.ArrayIndex(parametersParameter, Expression.Constant(i));
Microsoft.AspNetCore.Shared.Tests (2)
src\Shared\ObjectMethodExecutor\ObjectMethodExecutor.cs (2)
209var valueObj = Expression.ArrayIndex(parametersParameter, Expression.Constant(i)); 261var valueObj = Expression.ArrayIndex(parametersParameter, Expression.Constant(i));
Microsoft.AspNetCore.SignalR.Core (2)
src\Shared\ObjectMethodExecutor\ObjectMethodExecutor.cs (2)
209var valueObj = Expression.ArrayIndex(parametersParameter, Expression.Constant(i)); 261var valueObj = Expression.ArrayIndex(parametersParameter, Expression.Constant(i));
Microsoft.CodeAnalysis.VisualBasic.Emit.UnitTests (1)
ExpressionTrees\Sources\ExprLambdaUtils.vb (1)
161Protected Overrides Function VisitBinary(node As BinaryExpression) As Expression
Microsoft.CSharp (1)
Microsoft\CSharp\RuntimeBinder\Semantics\Types\PredefinedTypes.cs (1)
160new PredefinedTypeInfo(PredefinedType.PT_BINARYEXPRESSION, typeof(System.Linq.Expressions.BinaryExpression), "System.Linq.Expressions.BinaryExpression"),
Microsoft.DotNet.SwaggerGenerator.CodeGenerator (1)
HelperFactory.cs (1)
316var element = Expression.ArrayIndex(argumentsParameter, Expression.Constant(index));
Microsoft.Extensions.DependencyInjection (3)
ServiceLookup\Expressions\ExpressionResolverBuilder.cs (3)
21private static readonly BinaryExpression ResolvedServicesVariableAssignment = 27private static readonly BinaryExpression SyncVariableAssignment = 245BinaryExpression assignExpression = Expression.Assign(
netstandard (1)
netstandard.cs (1)
986[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Linq.Expressions.BinaryExpression))]
System.ComponentModel.Composition (3)
System\ComponentModel\Composition\ConstraintServices.cs (3)
56private static BinaryExpression CreateContractConstraintBody(string contractName, ParameterExpression parameter) 84private static BinaryExpression CreateCreationPolicyConstraint(CreationPolicy policy, ParameterExpression parameter) 104private static BinaryExpression CreateTypeIdentityConstraint(string requiredTypeIdentity, ParameterExpression parameter)
System.Composition.Hosting (1)
System\Composition\Hosting\Providers\Metadata\MetadataViewProvider.cs (1)
60var assign = Expression.Assign(
System.Composition.TypedParts (2)
System\Composition\TypedParts\ActivationFeatures\PropertyInjectionFeature.cs (2)
80var assignTyped = Expression.Assign(typed, Expression.Convert(inst, partType.AsType())); 87var assignment = Expression.Assign(
System.Core (1)
System.Core.cs (1)
124[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Linq.Expressions.BinaryExpression))]
System.Linq.Expressions (876)
System\Linq\Expressions\BinaryExpression.cs (799)
92public BinaryExpression Update(Expression left, LambdaExpression? conversion, Expression right) 313internal static BinaryExpression Create(ExpressionType nodeType, Expression left, Expression right, Type type, MethodInfo? method, LambdaExpression? conversion) 580/// Creates a <see cref="BinaryExpression"/> that represents an assignment operation. 582/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 583/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 584/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Assign"/> 585/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values. 587public static BinaryExpression Assign(Expression left, Expression right) 602private static BinaryExpression? GetUserDefinedBinaryOperator(ExpressionType binaryType, string name, Expression left, Expression right, bool liftToNull) 631private static BinaryExpression GetMethodBasedBinaryOperator(ExpressionType binaryType, Expression left, Expression right, MethodInfo method, bool liftToNull) 662private static BinaryExpression GetMethodBasedAssignOperator(ExpressionType binaryType, Expression left, Expression right, MethodInfo method, LambdaExpression? conversion, bool liftToNull) 664BinaryExpression b = GetMethodBasedBinaryOperator(binaryType, left, right, method, liftToNull); 682private static BinaryExpression GetUserDefinedBinaryOperatorOrThrow(ExpressionType binaryType, string name, Expression left, Expression right, bool liftToNull) 684BinaryExpression? b = GetUserDefinedBinaryOperator(binaryType, name, left, right, liftToNull); 695private static BinaryExpression GetUserDefinedAssignOperatorOrThrow(ExpressionType binaryType, string name, Expression left, Expression right, LambdaExpression? conversion, bool liftToNull) 697BinaryExpression b = GetUserDefinedBinaryOperatorOrThrow(binaryType, name, left, right, liftToNull); 864/// Creates a <see cref="BinaryExpression" />, given the left and right operands, by calling an appropriate factory method. 870public static BinaryExpression MakeBinary(ExpressionType binaryType, Expression left, Expression right) 876/// Creates a <see cref="BinaryExpression" />, given the left and right operands, by calling an appropriate factory method. 884public static BinaryExpression MakeBinary(ExpressionType binaryType, Expression left, Expression right, bool liftToNull, MethodInfo? method) 891/// Creates a <see cref="BinaryExpression" />, given the left and right operands, by calling an appropriate factory method. 900public static BinaryExpression MakeBinary(ExpressionType binaryType, Expression left, Expression right, bool liftToNull, MethodInfo? method, LambdaExpression? conversion) => 948/// Creates a <see cref="BinaryExpression"/> that represents an equality comparison. 950/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 951/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 952/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Equal"/> 953/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 954public static BinaryExpression Equal(Expression left, Expression right) 960/// Creates a <see cref="BinaryExpression"/> that represents an equality comparison. 962/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 963/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 964/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 966/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Equal"/> 967/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.IsLiftedToNull"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 969public static BinaryExpression Equal(Expression left, Expression right, bool liftToNull, MethodInfo? method) 981/// Creates a <see cref="BinaryExpression"/> that represents a reference equality comparison. 983/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 984/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 985/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Equal"/> 986/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values. 988public static BinaryExpression ReferenceEqual(Expression left, Expression right) 1000/// Creates a <see cref="BinaryExpression"/> that represents an inequality comparison. 1002/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1003/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1004/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.NotEqual"/> 1005/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1006public static BinaryExpression NotEqual(Expression left, Expression right) 1012/// Creates a <see cref="BinaryExpression"/> that represents an inequality comparison. 1014/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1015/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1017/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1018/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.NotEqual"/> 1019/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.IsLiftedToNull"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1021public static BinaryExpression NotEqual(Expression left, Expression right, bool liftToNull, MethodInfo? method) 1033/// Creates a <see cref="BinaryExpression"/> that represents a reference inequality comparison. 1035/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1036/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1037/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.NotEqual"/> 1038/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values. 1040public static BinaryExpression ReferenceNotEqual(Expression left, Expression right) 1051private static BinaryExpression GetEqualityComparisonOperator(ExpressionType binaryType, string opName, Expression left, Expression right, bool liftToNull) 1069BinaryExpression? b = GetUserDefinedBinaryOperator(binaryType, opName, left, right, liftToNull); 1093/// Creates a <see cref="BinaryExpression"/> that represents a "greater than" numeric comparison. 1095/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1096/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1097/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.GreaterThan"/> 1098/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1099public static BinaryExpression GreaterThan(Expression left, Expression right) 1105/// Creates a <see cref="BinaryExpression"/> that represents a "greater than" numeric comparison. 1107/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1108/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1109/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1111/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.GreaterThan"/> 1112/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.IsLiftedToNull"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1114public static BinaryExpression GreaterThan(Expression left, Expression right, bool liftToNull, MethodInfo? method) 1126/// Creates a <see cref="BinaryExpression"/> that represents a "less than" numeric comparison. 1128/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1129/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1130/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LessThan"/> 1131/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1133public static BinaryExpression LessThan(Expression left, Expression right) 1139/// Creates a <see cref="BinaryExpression"/> that represents a "less than" numeric comparison. 1141/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1142/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1143/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1145/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LessThan"/> 1146/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.IsLiftedToNull"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1148public static BinaryExpression LessThan(Expression left, Expression right, bool liftToNull, MethodInfo? method) 1160/// Creates a <see cref="BinaryExpression"/> that represents a "greater than or equal" numeric comparison. 1162/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1163/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1164/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.GreaterThanOrEqual"/> 1165/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1166public static BinaryExpression GreaterThanOrEqual(Expression left, Expression right) 1172/// Creates a <see cref="BinaryExpression"/> that represents a "greater than or equal" numeric comparison. 1174/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1175/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1176/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1178/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.GreaterThanOrEqual"/> 1179/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.IsLiftedToNull"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1181public static BinaryExpression GreaterThanOrEqual(Expression left, Expression right, bool liftToNull, MethodInfo? method) 1193/// Creates a <see cref="BinaryExpression"/> that represents a "less than or equal" numeric comparison. 1195/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1196/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1197/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LessThanOrEqual"/> 1198/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1199public static BinaryExpression LessThanOrEqual(Expression left, Expression right) 1205/// Creates a <see cref="BinaryExpression"/> that represents a "less than or equal" numeric comparison. 1207/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1208/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1209/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1211/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LessThanOrEqual"/> 1212/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.IsLiftedToNull"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1214public static BinaryExpression LessThanOrEqual(Expression left, Expression right, bool liftToNull, MethodInfo? method) 1225private static BinaryExpression GetComparisonOperator(ExpressionType binaryType, string opName, Expression left, Expression right, bool liftToNull) 1246/// Creates a <see cref="BinaryExpression"/> that represents a conditional AND operation that evaluates the second operand only if it has to. 1248/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1249/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1250/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AndAlso"/> 1251/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1252public static BinaryExpression AndAlso(Expression left, Expression right) 1258/// Creates a <see cref="BinaryExpression"/> that represents a conditional AND operation that evaluates the second operand only if it has to. 1260/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1261/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1262/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1263/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AndAlso"/> 1264/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1266public static BinaryExpression AndAlso(Expression left, Expression right, MethodInfo? method) 1299/// Creates a <see cref="BinaryExpression"/> that represents a conditional OR operation that evaluates the second operand only if it has to. 1301/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1302/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1303/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.OrElse"/> 1304/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1305public static BinaryExpression OrElse(Expression left, Expression right) 1311/// Creates a <see cref="BinaryExpression"/> that represents a conditional OR operation that evaluates the second operand only if it has to. 1313/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1314/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1315/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1316/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.OrElse"/> 1317/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1319public static BinaryExpression OrElse(Expression left, Expression right, MethodInfo? method) 1356/// Creates a <see cref="BinaryExpression" /> that represents a coalescing operation. 1358/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1359/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1360/// <returns>A <see cref="BinaryExpression" /> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Coalesce"/> 1361/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1362public static BinaryExpression Coalesce(Expression left, Expression right) 1368/// Creates a <see cref="BinaryExpression" /> that represents a coalescing operation. 1370/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1371/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1373/// <returns>A <see cref="BinaryExpression" /> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Coalesce"/> 1374/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/> and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 1376public static BinaryExpression Coalesce(Expression left, Expression right, LambdaExpression? conversion) 1453/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic addition operation that does not have overflow checking. 1455/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1456/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1457/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Add"/> 1458/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1459public static BinaryExpression Add(Expression left, Expression right) 1465/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic addition operation that does not have overflow checking. 1467/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1468/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1469/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1470/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Add"/> 1471/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1473public static BinaryExpression Add(Expression left, Expression right, MethodInfo? method) 1489/// Creates a <see cref="BinaryExpression"/> that represents an addition assignment operation that does not have overflow checking. 1491/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1492/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1493/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddAssign"/> 1494/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1495public static BinaryExpression AddAssign(Expression left, Expression right) 1501/// Creates a <see cref="BinaryExpression"/> that represents an addition assignment operation that does not have overflow checking. 1503/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1504/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1505/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1506/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddAssign"/> 1507/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1509public static BinaryExpression AddAssign(Expression left, Expression right, MethodInfo? method) 1515/// Creates a <see cref="BinaryExpression"/> that represents an addition assignment operation that does not have overflow checking. 1517/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1518/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1519/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1520/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 1521/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddAssign"/> 1522/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 1523/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 1525public static BinaryExpression AddAssign(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 1570/// Creates a <see cref="BinaryExpression"/> that represents an addition assignment operation that has overflow checking. 1572/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1573/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1574/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to 1575/// <see cref="ExpressionType.AddAssignChecked"/> and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> 1578public static BinaryExpression AddAssignChecked(Expression left, Expression right) 1584/// Creates a <see cref="BinaryExpression"/> that represents an addition assignment operation that has overflow checking. 1586/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1587/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1588/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1589/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddAssignChecked"/> 1590/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1592public static BinaryExpression AddAssignChecked(Expression left, Expression right, MethodInfo? method) 1598/// Creates a <see cref="BinaryExpression"/> that represents an addition assignment operation that has overflow checking. 1600/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1601/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1602/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1603/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 1604/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddAssignChecked"/> 1605/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 1606/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 1608public static BinaryExpression AddAssignChecked(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 1631/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic addition operation that has overflow checking. 1633/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1634/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1635/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddChecked"/> 1636/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1637public static BinaryExpression AddChecked(Expression left, Expression right) 1643/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic addition operation that has overflow checking. 1645/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1646/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1647/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1648/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddChecked"/> 1649/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1651public static BinaryExpression AddChecked(Expression left, Expression right, MethodInfo? method) 1667/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic subtraction operation that does not have overflow checking. 1669/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1670/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1671/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Subtract"/> 1672/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1673public static BinaryExpression Subtract(Expression left, Expression right) 1679/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic subtraction operation that does not have overflow checking. 1681/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1682/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1683/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1684/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Subtract"/> 1685/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1687public static BinaryExpression Subtract(Expression left, Expression right, MethodInfo? method) 1703/// Creates a <see cref="BinaryExpression"/> that represents a subtraction assignment operation that does not have overflow checking. 1705/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1706/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1707/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractAssign"/> 1708/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1709public static BinaryExpression SubtractAssign(Expression left, Expression right) 1715/// Creates a <see cref="BinaryExpression"/> that represents a subtraction assignment operation that does not have overflow checking. 1717/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1718/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1719/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1720/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractAssign"/> 1721/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1723public static BinaryExpression SubtractAssign(Expression left, Expression right, MethodInfo? method) 1729/// Creates a <see cref="BinaryExpression"/> that represents a subtraction assignment operation that does not have overflow checking. 1731/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1732/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1733/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1734/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 1735/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractAssign"/> 1736/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 1737/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 1739public static BinaryExpression SubtractAssign(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 1761/// Creates a <see cref="BinaryExpression"/> that represents a subtraction assignment operation that has overflow checking. 1763/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1764/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1765/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractAssignChecked"/> 1766/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1767public static BinaryExpression SubtractAssignChecked(Expression left, Expression right) 1773/// Creates a <see cref="BinaryExpression"/> that represents a subtraction assignment operation that has overflow checking. 1775/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1776/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1777/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1778/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractAssignChecked"/> 1779/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1781public static BinaryExpression SubtractAssignChecked(Expression left, Expression right, MethodInfo? method) 1787/// Creates a <see cref="BinaryExpression"/> that represents a subtraction assignment operation that has overflow checking. 1789/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1790/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1791/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1792/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 1793/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractAssignChecked"/> 1794/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 1795/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 1797public static BinaryExpression SubtractAssignChecked(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 1819/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic subtraction operation that has overflow checking. 1821/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1822/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1823/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractChecked"/> 1824/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1825public static BinaryExpression SubtractChecked(Expression left, Expression right) 1831/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic subtraction operation that has overflow checking. 1833/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1834/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1835/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1836/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractChecked"/> 1837/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1839public static BinaryExpression SubtractChecked(Expression left, Expression right, MethodInfo? method) 1855/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic division operation. 1857/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1858/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1859/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Divide"/> 1860/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1861public static BinaryExpression Divide(Expression left, Expression right) 1867/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic division operation. 1869/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1870/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1871/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1872/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Divide"/> 1873/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1875public static BinaryExpression Divide(Expression left, Expression right, MethodInfo? method) 1891/// Creates a <see cref="BinaryExpression"/> that represents a division assignment operation that does not have overflow checking. 1893/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1894/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1895/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.DivideAssign"/> 1896/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1897public static BinaryExpression DivideAssign(Expression left, Expression right) 1903/// Creates a <see cref="BinaryExpression"/> that represents a division assignment operation that does not have overflow checking. 1905/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1906/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1907/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1908/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.DivideAssign"/> 1909/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1911public static BinaryExpression DivideAssign(Expression left, Expression right, MethodInfo? method) 1917/// Creates a <see cref="BinaryExpression"/> that represents a division assignment operation that does not have overflow checking. 1919/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1920/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1921/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1922/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 1923/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.DivideAssign"/> 1924/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 1925/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 1927public static BinaryExpression DivideAssign(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 1949/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic remainder operation. 1951/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1952/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1953/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Modulo"/> 1954/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1955public static BinaryExpression Modulo(Expression left, Expression right) 1961/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic remainder operation. 1963/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1964/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1965/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 1966/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Modulo"/> 1967/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 1969public static BinaryExpression Modulo(Expression left, Expression right, MethodInfo? method) 1985/// Creates a <see cref="BinaryExpression"/> that represents a remainder assignment operation. 1987/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 1988/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 1989/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ModuloAssign"/> 1990/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1991public static BinaryExpression ModuloAssign(Expression left, Expression right) 1997/// Creates a <see cref="BinaryExpression"/> that represents a remainder assignment operation. 1999/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2000/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2001/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2002/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ModuloAssign"/> 2003/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2005public static BinaryExpression ModuloAssign(Expression left, Expression right, MethodInfo? method) 2011/// Creates a <see cref="BinaryExpression"/> that represents a remainder assignment operation. 2013/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2014/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2015/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2016/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 2017/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ModuloAssign"/> 2018/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 2019/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 2021public static BinaryExpression ModuloAssign(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 2043/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic multiplication operation that does not have overflow checking. 2045/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2046/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2047/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Multiply"/> 2048/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2049public static BinaryExpression Multiply(Expression left, Expression right) 2055/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic multiplication operation that does not have overflow checking. 2057/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2058/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2059/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2060/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Multiply"/> 2061/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2063public static BinaryExpression Multiply(Expression left, Expression right, MethodInfo? method) 2079/// Creates a <see cref="BinaryExpression"/> that represents a multiplication assignment operation that does not have overflow checking. 2081/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2082/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2083/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyAssign"/> 2084/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2085public static BinaryExpression MultiplyAssign(Expression left, Expression right) 2091/// Creates a <see cref="BinaryExpression"/> that represents a multiplication assignment operation that does not have overflow checking. 2093/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2094/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2095/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2096/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyAssign"/> 2097/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2099public static BinaryExpression MultiplyAssign(Expression left, Expression right, MethodInfo? method) 2105/// Creates a <see cref="BinaryExpression"/> that represents a multiplication assignment operation that does not have overflow checking. 2107/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2108/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2109/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2110/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 2111/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyAssign"/> 2112/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 2113/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 2115public static BinaryExpression MultiplyAssign(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 2137/// Creates a <see cref="BinaryExpression"/> that represents a multiplication assignment operation that has overflow checking. 2139/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2140/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2141/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyAssignChecked"/> 2142/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2143public static BinaryExpression MultiplyAssignChecked(Expression left, Expression right) 2149/// Creates a <see cref="BinaryExpression"/> that represents a multiplication assignment operation that has overflow checking. 2151/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2152/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2153/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2154/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyAssignChecked"/> 2155/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2157public static BinaryExpression MultiplyAssignChecked(Expression left, Expression right, MethodInfo? method) 2163/// Creates a <see cref="BinaryExpression"/> that represents a multiplication assignment operation that has overflow checking. 2165/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2166/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2167/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2168/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 2169/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyAssignChecked"/> 2170/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 2171/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 2173public static BinaryExpression MultiplyAssignChecked(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 2195/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic multiplication operation that has overflow checking. 2197/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2198/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2199/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyChecked"/> 2200/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2201public static BinaryExpression MultiplyChecked(Expression left, Expression right) 2207/// Creates a <see cref="BinaryExpression"/> that represents an arithmetic multiplication operation that has overflow checking. 2209/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2210/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2211/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2212/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyChecked"/> 2213/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2215public static BinaryExpression MultiplyChecked(Expression left, Expression right, MethodInfo? method) 2247/// Creates a <see cref="BinaryExpression"/> that represents an bitwise left-shift operation. 2249/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2250/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2251/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LeftShift"/> 2252/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2253public static BinaryExpression LeftShift(Expression left, Expression right) 2259/// Creates a <see cref="BinaryExpression"/> that represents an bitwise left-shift operation. 2261/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2262/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2263/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2264/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LeftShift"/> 2265/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2267public static BinaryExpression LeftShift(Expression left, Expression right, MethodInfo? method) 2284/// Creates a <see cref="BinaryExpression"/> that represents a bitwise left-shift assignment operation. 2286/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2287/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2288/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LeftShiftAssign"/> 2289/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2290public static BinaryExpression LeftShiftAssign(Expression left, Expression right) 2296/// Creates a <see cref="BinaryExpression"/> that represents a bitwise left-shift assignment operation. 2298/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2299/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2300/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2301/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LeftShiftAssign"/> 2302/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2304public static BinaryExpression LeftShiftAssign(Expression left, Expression right, MethodInfo? method) 2310/// Creates a <see cref="BinaryExpression"/> that represents a bitwise left-shift assignment operation. 2312/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2313/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2314/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2315/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 2316/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LeftShiftAssign"/> 2317/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 2318/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 2320public static BinaryExpression LeftShiftAssign(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 2343/// Creates a <see cref="BinaryExpression"/> that represents an bitwise right-shift operation. 2345/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2346/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2347/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.RightShift"/> 2348/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2349public static BinaryExpression RightShift(Expression left, Expression right) 2355/// Creates a <see cref="BinaryExpression"/> that represents an bitwise right-shift operation. 2357/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2358/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2359/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2360/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.RightShift"/> 2361/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2363public static BinaryExpression RightShift(Expression left, Expression right, MethodInfo? method) 2380/// Creates a <see cref="BinaryExpression"/> that represents a bitwise right-shift assignment operation. 2382/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2383/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2384/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.RightShiftAssign"/> 2385/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2386public static BinaryExpression RightShiftAssign(Expression left, Expression right) 2392/// Creates a <see cref="BinaryExpression"/> that represents a bitwise right-shift assignment operation. 2394/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2395/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2396/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2397/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.RightShiftAssign"/> 2398/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2400public static BinaryExpression RightShiftAssign(Expression left, Expression right, MethodInfo? method) 2406/// Creates a <see cref="BinaryExpression"/> that represents a bitwise right-shift assignment operation. 2408/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2409/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2410/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2411/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 2412/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.RightShiftAssign"/> 2413/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 2414/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 2416public static BinaryExpression RightShiftAssign(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 2439/// Creates a <see cref="BinaryExpression"/> that represents an bitwise AND operation. 2441/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2442/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2443/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.And"/> 2444/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2445public static BinaryExpression And(Expression left, Expression right) 2451/// Creates a <see cref="BinaryExpression"/> that represents an bitwise AND operation. 2453/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2454/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2455/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2456/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.And"/> 2457/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2459public static BinaryExpression And(Expression left, Expression right, MethodInfo? method) 2475/// Creates a <see cref="BinaryExpression"/> that represents a bitwise AND assignment operation. 2477/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2478/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2479/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AndAssign"/> 2480/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2481public static BinaryExpression AndAssign(Expression left, Expression right) 2487/// Creates a <see cref="BinaryExpression"/> that represents a bitwise AND assignment operation. 2489/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2490/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2491/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2492/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AndAssign"/> 2493/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2495public static BinaryExpression AndAssign(Expression left, Expression right, MethodInfo? method) 2501/// Creates a <see cref="BinaryExpression"/> that represents a bitwise AND assignment operation. 2503/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2504/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2505/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2506/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 2507/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AndAssign"/> 2508/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 2509/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 2511public static BinaryExpression AndAssign(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 2533/// Creates a <see cref="BinaryExpression"/> that represents an bitwise OR operation. 2535/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2536/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2537/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Or"/> 2538/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2539public static BinaryExpression Or(Expression left, Expression right) 2545/// Creates a <see cref="BinaryExpression"/> that represents an bitwise OR operation. 2547/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2548/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2549/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2550/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Or"/> 2551/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2553public static BinaryExpression Or(Expression left, Expression right, MethodInfo? method) 2569/// Creates a <see cref="BinaryExpression"/> that represents a bitwise OR assignment operation. 2571/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2572/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2573/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.OrAssign"/> 2574/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2575public static BinaryExpression OrAssign(Expression left, Expression right) 2581/// Creates a <see cref="BinaryExpression"/> that represents a bitwise OR assignment operation. 2583/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2584/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2585/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2586/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.OrAssign"/> 2587/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2589public static BinaryExpression OrAssign(Expression left, Expression right, MethodInfo? method) 2595/// Creates a <see cref="BinaryExpression"/> that represents a bitwise OR assignment operation. 2597/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2598/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2599/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2600/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 2601/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.OrAssign"/> 2602/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 2603/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 2605public static BinaryExpression OrAssign(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 2627/// Creates a <see cref="BinaryExpression"/> that represents a bitwise or logical XOR operation, using op_ExclusiveOr for user-defined types. 2629/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2630/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2631/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ExclusiveOr"/> 2632/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2633public static BinaryExpression ExclusiveOr(Expression left, Expression right) 2639/// Creates a <see cref="BinaryExpression"/> that represents a bitwise or logical XOR operation, using op_ExclusiveOr for user-defined types. 2641/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2642/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2643/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2644/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ExclusiveOr"/> 2645/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2647public static BinaryExpression ExclusiveOr(Expression left, Expression right, MethodInfo? method) 2663/// Creates a <see cref="BinaryExpression"/> that represents a bitwise or logical XOR assignment operation, using op_ExclusiveOr for user-defined types. 2665/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2666/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2667/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ExclusiveOrAssign"/> 2668/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2669public static BinaryExpression ExclusiveOrAssign(Expression left, Expression right) 2675/// Creates a <see cref="BinaryExpression"/> that represents a bitwise or logical XOR assignment operation, using op_ExclusiveOr for user-defined types. 2677/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2678/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2679/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2680/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ExclusiveOrAssign"/> 2681/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2683public static BinaryExpression ExclusiveOrAssign(Expression left, Expression right, MethodInfo? method) 2689/// Creates a <see cref="BinaryExpression"/> that represents a bitwise or logical XOR assignment operation, using op_ExclusiveOr for user-defined types. 2691/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2692/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2693/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2694/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 2695/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ExclusiveOrAssign"/> 2696/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 2697/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 2699public static BinaryExpression ExclusiveOrAssign(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 2721/// Creates a <see cref="BinaryExpression"/> that represents raising a number to a power. 2723/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2724/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2725/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Power"/> 2726/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2727public static BinaryExpression Power(Expression left, Expression right) 2733/// Creates a <see cref="BinaryExpression"/> that represents raising a number to a power. 2735/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2736/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2737/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2738/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Power"/> 2739/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2741public static BinaryExpression Power(Expression left, Expression right, MethodInfo? method) 2757BinaryExpression? b = GetUserDefinedBinaryOperator(ExpressionType.Power, name, left, right, liftToNull: true); 2779/// Creates a <see cref="BinaryExpression"/> that represents raising an expression to a power and assigning the result back to the expression. 2781/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2782/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2783/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.PowerAssign"/> 2784/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2785public static BinaryExpression PowerAssign(Expression left, Expression right) 2791/// Creates a <see cref="BinaryExpression"/> that represents raising an expression to a power and assigning the result back to the expression. 2793/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2794/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2795/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2796/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.PowerAssign"/> 2797/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, and <see cref="BinaryExpression.Method"/> properties set to the specified values. 2799public static BinaryExpression PowerAssign(Expression left, Expression right, MethodInfo? method) 2805/// Creates a <see cref="BinaryExpression"/> that represents raising an expression to a power and assigning the result back to the expression. 2807/// <param name="left">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2808/// <param name="right">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2809/// <param name="method">A <see cref="MethodInfo"/> to set the <see cref="BinaryExpression.Method"/> property equal to.</param> 2810/// <param name="conversion">A <see cref="LambdaExpression"/> to set the <see cref="BinaryExpression.Conversion"/> property equal to.</param> 2811/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.PowerAssign"/> 2812/// and the <see cref="BinaryExpression.Left"/>, <see cref="BinaryExpression.Right"/>, <see cref="BinaryExpression.Method"/>, 2813/// and <see cref="BinaryExpression.Conversion"/> properties set to the specified values. 2815public static BinaryExpression PowerAssign(Expression left, Expression right, MethodInfo? method, LambdaExpression? conversion) 2836/// Creates a <see cref="BinaryExpression"/> that represents applying an array index operator to an array of rank one. 2838/// <param name="array">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Left"/> property equal to.</param> 2839/// <param name="index">An <see cref="Expression"/> to set the <see cref="BinaryExpression.Right"/> property equal to.</param> 2840/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ArrayIndex"/> 2841/// and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 2842public static BinaryExpression ArrayIndex(Expression array, Expression index)
System\Linq\Expressions\Compiler\LambdaCompiler.Address.cs (2)
35AddressOf((BinaryExpression)node, type); 66private void AddressOf(BinaryExpression node, Type type)
System\Linq\Expressions\Compiler\LambdaCompiler.Binary.cs (3)
22BinaryExpression b = (BinaryExpression)expr; 93private void EmitBinaryMethod(BinaryExpression b, CompilationFlags flags)
System\Linq\Expressions\Compiler\LambdaCompiler.Logical.cs (21)
88BinaryExpression b = (BinaryExpression)expr; 110private void EmitNullableCoalesce(BinaryExpression b) 175private void EmitLambdaReferenceCoalesce(BinaryExpression b) 205private void EmitReferenceCoalesceWithoutConversion(BinaryExpression b) 236private void EmitLiftedAndAlso(BinaryExpression b) 276private void EmitMethodAndAlso(BinaryExpression b, CompilationFlags flags) 298private void EmitUnliftedAndAlso(BinaryExpression b) 312BinaryExpression b = (BinaryExpression)expr; 339private void EmitLiftedOrElse(BinaryExpression b) 370private void EmitUnliftedOrElse(BinaryExpression b) 382private void EmitMethodOrElse(BinaryExpression b, CompilationFlags flags) 406BinaryExpression b = (BinaryExpression)expr; 468EmitBranchLogical(branchValue, (BinaryExpression)node, label); 477EmitBranchComparison(branchValue, (BinaryExpression)node, label); 506private void EmitBranchComparison(bool branch, BinaryExpression node, Label label) 581private void EmitBranchLogical(bool branch, BinaryExpression node, Label label) 621private void EmitBranchAnd(bool branch, BinaryExpression node, Label label) 635private void EmitBranchOr(bool branch, BinaryExpression node, Label label)
System\Linq\Expressions\Compiler\StackSpiller.cs (12)
181private Result RewriteIndexAssignment(BinaryExpression node, Stack stack) 214var node = (BinaryExpression)expr; 231expr = BinaryExpression.Create( 254var node = (BinaryExpression)expr; 270BinaryExpression.Create( 280private Result RewriteVariableAssignment(BinaryExpression node, Stack stack) 295var node = (BinaryExpression)expr; 307private Result RewriteExtensionAssignment(BinaryExpression node, Stack stack) 351private Result RewriteMemberAssignment(BinaryExpression node, Stack stack)
System\Linq\Expressions\DebugViewWriter.cs (7)
292protected internal override Expression VisitBinary(BinaryExpression node) 415var binary = node as BinaryExpression; 418return !(binary.Left is BinaryExpression || binary.Right is BinaryExpression); 610BinaryExpression? binary = parent as BinaryExpression;
System\Linq\Expressions\Expression.DebuggerProxy.cs (2)
14private readonly BinaryExpression _node; 16public BinaryExpressionProxy(BinaryExpression node)
System\Linq\Expressions\ExpressionStringBuilder.cs (1)
142protected internal override Expression VisitBinary(BinaryExpression node)
System\Linq\Expressions\ExpressionVisitor.cs (5)
187/// Visits the children of the <see cref="BinaryExpression"/>. 192protected internal virtual Expression VisitBinary(BinaryExpression node) 657private static BinaryExpression ValidateBinary(BinaryExpression before, BinaryExpression after)
System\Linq\Expressions\Interpreter\LightCompiler.cs (19)
605private void CompileIndexAssignment(BinaryExpression node, bool asVoid) 650private void CompileMemberAssignment(BinaryExpression node, bool asVoid) 721private void CompileVariableAssignment(BinaryExpression node, bool asVoid) 731var node = (BinaryExpression)expr; 755var node = (BinaryExpression)expr; 943CompileComparison((BinaryExpression)node); 996private void CompileComparison(BinaryExpression node) 1325CompileLogicalBinaryExpression((BinaryExpression)expr, andAlso: true); 1330CompileLogicalBinaryExpression((BinaryExpression)expr, andAlso: false); 1333private void CompileLogicalBinaryExpression(BinaryExpression b, bool andAlso) 1353private void CompileMethodLogicalBinaryExpression(BinaryExpression expr, bool andAlso) 1372private void CompileLiftedLogicalBinaryExpression(BinaryExpression node, bool andAlso) 1452private void CompileUnliftedLogicalBinaryExpression(BinaryExpression expr, bool andAlso) 2260var array = (BinaryExpression)node; 2593var node = (BinaryExpression)expr;
System\Linq\Expressions\MethodCallExpression.cs (3)
1393/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ArrayIndex"/> and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns>
System\Linq\Expressions\SwitchExpression.cs (1)
271BinaryExpression equal = Equal(switchValue, firstTestValue, false, comparison);
System\Linq\Expressions\UnaryExpression.cs (1)
187BinaryExpression initTemp1 = Assign(temp1, member.Expression);
System.Private.Xml (1)
System\Xml\Serialization\ReflectionXmlSerializationReader.cs (1)
2137var assignExpr = Expression.Assign(fieldExpr, valueParam);