Class ExpressionBuilder
Provides extension methods to simplify construction of complex expressions.
Inherited Members
Namespace: DotNext.Linq.Expressions
Assembly: DotNext.Metaprogramming.dll
Syntax
public static class ExpressionBuilder
Methods
| Edit this page View SourceAdd(Expression, Expression, bool)
Constructs binary arithmetic addition expression.
Declaration
public static BinaryExpression Add(this Expression left, Expression right, bool @checked = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
| bool | checked | true to perform checked arithmetic operation; otherwise, false. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a + b.
And(Expression, Expression)
Constructs binary logical AND expression.
Declaration
public static BinaryExpression And(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a & b.
AndAlso(Expression, Expression)
Constructs binary expression that represents a conditional AND operation that evaluates the second operand only if the first operand evaluates to true.
Declaration
public static BinaryExpression AndAlso(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The first operand. |
| Expression | right | The second operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a && b.
ArrayLength(Expression)
Constructs array length expression.
Declaration
public static UnaryExpression ArrayLength(this Expression array)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | array | The array expression. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Array length expression. |
Remarks
The equivalent code is a.LongLength.
AsDynamic(Expression?)
Converts expression to its dynamic representation that allows to construct expression trees using native language expressions.
Declaration
public static dynamic AsDynamic(this Expression? expression)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The expression to be converted to dynamic expression builder. |
Returns
| Type | Description |
|---|---|
| dynamic | The dynamic representation of expression. |
AsNullable(Expression)
Converts value type to the expression of Nullable<T> type.
Declaration
public static Expression AsNullable(this Expression expression)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The expression to be converted. |
Returns
| Type | Description |
|---|---|
| Expression | The nullable expression. |
Remarks
If expression is of pointer of reference type then
method returns unmodified expression.
AsOptional(Expression)
Creates the expression of Optional<T> type.
Declaration
public static Expression AsOptional(this Expression expression)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The expression to be converted. |
Returns
| Type | Description |
|---|---|
| Expression | The expression of Optional<T> type. |
AsResult(Expression)
Converts compound expression to its safe equivalent that doesn't throw exception and return Result<T> instead.
Declaration
public static Expression AsResult(this Expression expression)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The compound expression. |
Returns
| Type | Description |
|---|---|
| Expression | The expression of type Result<T>. |
AsString(Expression)
Constructs expression that calls ToString().
Declaration
public static MethodCallExpression AsString(this Expression obj)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | obj | The object to be converted into string. |
Returns
| Type | Description |
|---|---|
| MethodCallExpression | The expression representing |
Assign(IndexExpression, Expression)
Constructs assignment expression.
Declaration
public static BinaryExpression Assign(this IndexExpression left, Expression value)
Parameters
| Type | Name | Description |
|---|---|---|
| IndexExpression | left | The assignee. |
| Expression | value | The value to be assigned to the left expression. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a.b[i] = c.
Assign(MemberExpression, Expression)
Constructs assignment expression.
Declaration
public static BinaryExpression Assign(this MemberExpression left, Expression value)
Parameters
| Type | Name | Description |
|---|---|---|
| MemberExpression | left | The assignee. |
| Expression | value | The value to be assigned to the left expression. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a.member = b.
Assign(ParameterExpression, Expression)
Constructs assignment expression.
Declaration
public static BinaryExpression Assign(this ParameterExpression left, Expression value)
Parameters
| Type | Name | Description |
|---|---|---|
| ParameterExpression | left | The assignee. |
| Expression | value | The value to be assigned to the left expression. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a = b.
AssignDefault(IndexExpression)
Constructs assignment expression.
Declaration
public static BinaryExpression AssignDefault(this IndexExpression left)
Parameters
| Type | Name | Description |
|---|---|---|
| IndexExpression | left | The assignee. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a.member[i] = default(T).
AssignDefault(MemberExpression)
Constructs assignment expression.
Declaration
public static BinaryExpression AssignDefault(this MemberExpression left)
Parameters
| Type | Name | Description |
|---|---|---|
| MemberExpression | left | The assignee. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a.member = default(T).
AssignDefault(ParameterExpression)
Constructs assignment expression.
Declaration
public static BinaryExpression AssignDefault(this ParameterExpression left)
Parameters
| Type | Name | Description |
|---|---|---|
| ParameterExpression | left | The assignee. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a = default(T).
Await(Expression, bool)
Constructs suspension point in the execution of the lambda function until the awaited task completes.
Declaration
public static AwaitExpression Await(this Expression expression, bool configureAwait = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The awaitable expression. |
| bool | configureAwait | true to call ConfigureAwait(bool) with false argument. |
Returns
| Type | Description |
|---|---|
| AwaitExpression | await expression. |
Remarks
The equivalent code is await b.
See Also
| Edit this page View SourceBreak(LabelTarget)
Constructs loop leave statement.
Declaration
public static GotoExpression Break(this LabelTarget label)
Parameters
| Type | Name | Description |
|---|---|---|
| LabelTarget | label | The label indicating loop exit. |
Returns
| Type | Description |
|---|---|
| GotoExpression | Break statement. |
Remarks
The equivalent code is break.
Break(LabelTarget, Expression)
Constructs loop leave statement.
Declaration
public static GotoExpression Break(this LabelTarget label, Expression value)
Parameters
| Type | Name | Description |
|---|---|---|
| LabelTarget | label | The label indicating loop exit. |
| Expression | value | The value to be returned from loop. |
Returns
| Type | Description |
|---|---|
| GotoExpression | Break statement. |
Call(Expression, MethodInfo, params Expression[])
Constructs instance method call expression.
Declaration
public static MethodCallExpression Call(this Expression instance, MethodInfo method, params Expression[] arguments)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | instance |
|
| MethodInfo | method | The method to be called. |
| Expression[] | arguments | The method arguments. |
Returns
| Type | Description |
|---|---|
| MethodCallExpression | The method call expression. |
Remarks
The equivalent code is obj.Method(a, b,...).
Call(Expression, string, params Expression[])
Constructs instance method call expression.
Declaration
public static MethodCallExpression Call(this Expression instance, string methodName, params Expression[] arguments)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | instance |
|
| string | methodName | The name of the method to be called. |
| Expression[] | arguments | The method arguments. |
Returns
| Type | Description |
|---|---|
| MethodCallExpression | The method call expression. |
Remarks
The equivalent code is obj.Method().
Call(Expression, Type, string, params Expression[])
Constructs interface or base class method call expression.
Declaration
public static MethodCallExpression Call(this Expression instance, Type interfaceType, string methodName, params Expression[] arguments)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | instance |
|
| Type | interfaceType | The interface or base class. |
| string | methodName | The name of the method in the interface or base class to be called. |
| Expression[] | arguments | The method arguments. |
Returns
| Type | Description |
|---|---|
| MethodCallExpression | The method call expression. |
Remarks
The equivalent code is ((T)obj).Method().
CallStatic(Type, string, params Expression[])
Constructs static method call.
Declaration
public static MethodCallExpression CallStatic(this Type type, string methodName, params Expression[] arguments)
Parameters
| Type | Name | Description |
|---|---|---|
| Type | type | The type that declares static method. |
| string | methodName | The name of the static method. |
| Expression[] | arguments | The arguments to be passed into static method. |
Returns
| Type | Description |
|---|---|
| MethodCallExpression | An expression representing static method call. |
Concat(Expression, params Expression[])
Constructs string concatenation expression.
Declaration
public static MethodCallExpression Concat(this Expression first, params Expression[] other)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | first | The first string to concatenate. |
| Expression[] | other | Other strings to concatenate. |
Returns
| Type | Description |
|---|---|
| MethodCallExpression | An expression presenting concatenation. |
Condition(Expression, Expression?, Expression?, Type?)
Constructs conditional expression.
Declaration
public static ConditionalExpression Condition(this Expression test, Expression? ifTrue = null, Expression? ifFalse = null, Type? type = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | test | Test expression. |
| Expression | ifTrue | Positive branch. |
| Expression | ifFalse | Negative branch. |
| Type | type | The type of conditional expression. Default is void. |
Returns
| Type | Description |
|---|---|
| ConditionalExpression | Conditional expression. |
Remarks
The equivalent code is a ? b : c.
Condition<TResult>(Expression, Expression, Expression)
Constructs conditional expression.
Declaration
public static ConditionalExpression Condition<TResult>(this Expression test, Expression ifTrue, Expression ifFalse)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | test | Test expression. |
| Expression | ifTrue | Positive branch. |
| Expression | ifFalse | Negative branch. |
Returns
| Type | Description |
|---|---|
| ConditionalExpression | Conditional expression. |
Type Parameters
| Name | Description |
|---|---|
| TResult | The type of conditional expression. Default is void. |
Remarks
The equivalent code is a ? b : c.
Const<T>(T)
Converts arbitrary value into constant expression.
Declaration
public static ConstantExpression Const<T>(this T value)
Parameters
| Type | Name | Description |
|---|---|---|
| T | value | The constant value. |
Returns
| Type | Description |
|---|---|
| ConstantExpression | The expression representing constant. |
Type Parameters
| Name | Description |
|---|---|
| T | The type of constant. |
Continue(LabelTarget)
Constructs loop continuation statement.
Declaration
public static GotoExpression Continue(this LabelTarget label)
Parameters
| Type | Name | Description |
|---|---|---|
| LabelTarget | label | The label indicating loop start. |
Returns
| Type | Description |
|---|---|
| GotoExpression | Continue statement. |
Convert(Expression, Type)
Constructs type conversion expression.
Declaration
public static UnaryExpression Convert(this Expression expression, Type targetType)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The expression to be converted. |
| Type | targetType | The target type. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | The type conversion expression. |
Remarks
The equivalent code is (T)a.
Convert<T>(Expression)
Constructs type conversion expression.
Declaration
public static UnaryExpression Convert<T>(this Expression expression)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The expression to be converted. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | The type conversion expression. |
Type Parameters
| Name | Description |
|---|---|
| T | The target type. |
Remarks
The equivalent code is (T)a.
Count(Expression)
Constructs expression representing count of items in the collection or string.
Declaration
public static MemberExpression Count(this Expression collection)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | collection | The expression representing collection. |
Returns
| Type | Description |
|---|---|
| MemberExpression | The expression providing access to the appropriate property indicating the number of items in the collection. |
Remarks
The input expression must be of type string, StringBuilder, array or any type implementing ICollection<T> or IReadOnlyCollection<T>.
Default(Type)
Constructs type default value supplier.
Declaration
public static DefaultExpression Default(this Type type)
Parameters
| Type | Name | Description |
|---|---|---|
| Type | type | The target type. |
Returns
| Type | Description |
|---|---|
| DefaultExpression | The type default value expression. |
Remarks
The equivalent code is default(T).
Divide(Expression, Expression)
Constructs binary arithmetic division expression.
Declaration
public static BinaryExpression Divide(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a / b.
ElementAt(Expression, ItemIndexExpression)
Constructs collection or array element access expression.
Declaration
public static CollectionAccessExpression ElementAt(this Expression collection, ItemIndexExpression index)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | collection | The collection. |
| ItemIndexExpression | index | The index of the collection or array element. |
Returns
| Type | Description |
|---|---|
| CollectionAccessExpression | The collection access expression. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentException |
|
See Also
| Edit this page View SourceElementAt(Expression, params Expression[])
Constructs array element access expression.
Declaration
public static IndexExpression ElementAt(this Expression array, params Expression[] indexes)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | array | The array expression. |
| Expression[] | indexes | Array element indicies. |
Returns
| Type | Description |
|---|---|
| IndexExpression | Array element access expression. |
Remarks
The equivalent code is a.b[i].
Equal(Expression, Expression)
Constructs equality comparison.
Declaration
public static BinaryExpression Equal(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a == b.
Field(Expression, FieldInfo)
Constructs instance field access expression.
Declaration
public static MemberExpression Field(this Expression instance, FieldInfo field)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | instance |
|
| FieldInfo | field | Field metadata. |
Returns
| Type | Description |
|---|---|
| MemberExpression | Field access expression. |
Remarks
The equivalent code is a.b.
Field(Expression, string)
Constructs instance field access expression.
Declaration
public static MemberExpression Field(this Expression instance, string fieldName)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | instance |
|
| string | fieldName | The name of the instance field. |
Returns
| Type | Description |
|---|---|
| MemberExpression | Field access expression. |
Remarks
The equivalent code is a.b.
Finally(Expression, Expression)
Constructs a try block with a finally block without catch block.
Declaration
public static TryExpression Finally(this Expression @try, Expression @finally)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | try |
|
| Expression | finally |
|
Returns
| Type | Description |
|---|---|
| TryExpression | Try-finally statement. |
Remarks
The equivalent code is try { } finally { }.
For(Expression, Condition, Iteration, Statement)
Creates for loop expression.
Declaration
public static ForExpression For(this Expression initialization, ForExpression.LoopBuilder.Condition condition, ForExpression.LoopBuilder.Iteration iteration, ForExpression.LoopBuilder.Statement body)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | initialization | Loop variable initialization expression. |
| ForExpression.LoopBuilder.Condition | condition | The condition of loop continuation. |
| ForExpression.LoopBuilder.Iteration | iteration | The loop iteration statement. |
| ForExpression.LoopBuilder.Statement | body | The loop body. |
Returns
| Type | Description |
|---|---|
| ForExpression | The constructed loop. |
ForEach(Expression, Statement)
Creates foreach loop expression.
Declaration
public static ForEachExpression ForEach(this Expression collection, ForEachExpression.Statement body)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | collection | The collection to iterate through. |
| ForEachExpression.Statement | body | A delegate that is used to construct the body of the loop. |
Returns
| Type | Description |
|---|---|
| ForEachExpression | The constructed loop. |
Fragment<TDelegate>(Expression<TDelegate>, params Expression[])
Extracts body of lambda expression.
Declaration
public static Expression Fragment<TDelegate>(Expression<TDelegate> lambda, params Expression[] arguments) where TDelegate : MulticastDelegate
Parameters
| Type | Name | Description |
|---|---|---|
| Expression<TDelegate> | lambda | The lambda expression. |
| Expression[] | arguments | The arguments used to replace lambda parameters. |
Returns
| Type | Description |
|---|---|
| Expression | The body of lambda expression. |
Type Parameters
| Name | Description |
|---|---|
| TDelegate | The type of the delegate describing lambda call site. |
Goto(LabelTarget)
Constructs unconditional control transfer statement.
Declaration
public static GotoExpression Goto(this LabelTarget label)
Parameters
| Type | Name | Description |
|---|---|---|
| LabelTarget | label | The declared label. |
Returns
| Type | Description |
|---|---|
| GotoExpression | Unconditional control transfer statement. |
Remarks
The equivalent code is goto label.
Goto(LabelTarget, Expression)
Constructs unconditional control transfer expression.
Declaration
public static GotoExpression Goto(this LabelTarget label, Expression value)
Parameters
| Type | Name | Description |
|---|---|---|
| LabelTarget | label | The declared label. |
| Expression | value | The value associated with the label. |
Returns
| Type | Description |
|---|---|
| GotoExpression | Unconditional control transfer expression. |
GreaterThan(Expression, Expression)
Constructs "greater than" numeric comparison.
Declaration
public static BinaryExpression GreaterThan(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a > b.
GreaterThanOrEqual(Expression, Expression)
Constructs "greater than or equal" numeric comparison.
Declaration
public static BinaryExpression GreaterThanOrEqual(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a >= b.
IfNotNull(Expression, Func<ParameterExpression, Expression>)
Creates a new safe navigation expression.
Declaration
public static NullSafetyExpression IfNotNull(this Expression target, Func<ParameterExpression, Expression> body)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | target | The expression that is guarded by null check. |
| Func<ParameterExpression, Expression> | body | The body to be executed if |
Returns
| Type | Description |
|---|---|
| NullSafetyExpression | The expression representing safe navigation. |
Index(int, bool)
Constructs expression of type Index.
Declaration
public static ItemIndexExpression Index(this int value, bool fromEnd)
Parameters
| Type | Name | Description |
|---|---|---|
| int | value | The expression representing index value. |
| bool | fromEnd | A boolean indicating if the index is from the start (false) or from the end (true) of a collection. |
Returns
| Type | Description |
|---|---|
| ItemIndexExpression | Index expression. |
Index(Expression, bool)
Constructs expression of type Index.
Declaration
public static ItemIndexExpression Index(this Expression value, bool fromEnd)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | value | The expression representing index value. |
| bool | fromEnd | A boolean indicating if the index is from the start (false) or from the end (true) of a collection. |
Returns
| Type | Description |
|---|---|
| ItemIndexExpression | Index expression. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentException |
Init(NewExpression, MemberBindings)
Constructs an expression representing initialization of members during object construction.
Declaration
public static MemberInitExpression Init(this NewExpression expression, MemberBindings bindings)
Parameters
| Type | Name | Description |
|---|---|---|
| NewExpression | expression | An expression representing object construction. |
| MemberBindings | bindings | A collection of members to initialize. |
Returns
| Type | Description |
|---|---|
| MemberInitExpression | Initialization expression. |
Remarks
The equivalent code is new T() { M1 = V1, M2 = V2 }.
InstanceOf(Expression, Type)
Constructs type check expression.
Declaration
public static TypeBinaryExpression InstanceOf(this Expression expression, Type type)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The expression to test. |
| Type | type | The target type. |
Returns
| Type | Description |
|---|---|
| TypeBinaryExpression | The type test expression. |
Remarks
The equivalent code is a is T.
InstanceOf<T>(Expression)
Constructs type check expression.
Declaration
public static TypeBinaryExpression InstanceOf<T>(this Expression expression)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The expression to test. |
Returns
| Type | Description |
|---|---|
| TypeBinaryExpression | The type test expression. |
Type Parameters
| Name | Description |
|---|---|
| T | The target type. |
Remarks
The equivalent code is a is T.
Invoke(Expression, params Expression[])
Constructs delegate invocation expression.
Declaration
public static InvocationExpression Invoke(this Expression @delegate, params Expression[] arguments)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | delegate | The expression representing delegate. |
| Expression[] | arguments | Invocation arguments. |
Returns
| Type | Description |
|---|---|
| InvocationExpression | Invocation expression. |
Remarks
The equivalent code is delegate.Invoke(a, b,...).
IsNotNull(Expression)
Constructs null check.
Declaration
public static Expression IsNotNull(this Expression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| Expression | null check operation. |
Remarks
The equivalent code is !(a is null).
IsNull(Expression)
Constructs null check.
Declaration
public static Expression IsNull(this Expression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| Expression | null check operation. |
Remarks
The equivalent code is a is null.
LandingSite(LabelTarget)
Constructs label landing site.
Declaration
public static LabelExpression LandingSite(this LabelTarget label)
Parameters
| Type | Name | Description |
|---|---|---|
| LabelTarget | label | The label reference. |
Returns
| Type | Description |
|---|---|
| LabelExpression | The label landing site. |
Remarks
The equivalent code is label:.
LandingSite(LabelTarget, Expression)
Constructs label landing site with the default value.
Declaration
public static LabelExpression LandingSite(this LabelTarget label, Expression @default)
Parameters
| Type | Name | Description |
|---|---|---|
| LabelTarget | label | The label reference. |
| Expression | default | The default value associated with the label. |
Returns
| Type | Description |
|---|---|
| LabelExpression | The label landing site. |
LeftShift(Expression, Expression)
Constructs bitwise left-shift expression.
Declaration
public static BinaryExpression LeftShift(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a << b in Visual Basic.
LessThan(Expression, Expression)
Constructs "less than" numeric comparison.
Declaration
public static BinaryExpression LessThan(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a < b.
LessThanOrEqual(Expression, Expression)
Constructs "less than or equal" numeric comparison.
Declaration
public static BinaryExpression LessThanOrEqual(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a <= b.
Lock(Expression, Statement)
Creates a new synchronized block of code.
Declaration
public static LockExpression Lock(this Expression syncRoot, LockExpression.Statement body)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | syncRoot | The monitor object. |
| LockExpression.Statement | body | The delegate used to construct synchronized block of code. |
Returns
| Type | Description |
|---|---|
| LockExpression | The synchronized block of code. |
Loop(Expression)
Constructs loop statement.
Declaration
public static LoopExpression Loop(this Expression body)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | body | The loop body. |
Returns
| Type | Description |
|---|---|
| LoopExpression | Loop statement. |
Loop(Expression, LabelTarget)
Constructs loop statement.
Declaration
public static LoopExpression Loop(this Expression body, LabelTarget @break)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | body | The loop body. |
| LabelTarget | break | Optional loop break label which will installed automatically. |
Returns
| Type | Description |
|---|---|
| LoopExpression | Loop statement. |
Loop(Expression, LabelTarget, LabelTarget)
Constructs loop statement.
Declaration
public static LoopExpression Loop(this Expression body, LabelTarget @break, LabelTarget @continue)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | body | The loop body. |
| LabelTarget | break | Optional loop break label which will installed automatically. |
| LabelTarget | continue | Optional loop continuation which will be installed automatically. |
Returns
| Type | Description |
|---|---|
| LoopExpression | Loop statement. |
Modulo(Expression, Expression)
Constructs arithmetic remainder expression.
Declaration
public static BinaryExpression Modulo(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a % b.
Multiply(Expression, Expression, bool)
Constructs binary arithmetic multiplication expression.
Declaration
public static BinaryExpression Multiply(this Expression left, Expression right, bool @checked = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
| bool | checked | true to perform checked arithmetic operation; otherwise, false. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a * b.
Negate(Expression, bool)
Constructs negate expression.
Declaration
public static UnaryExpression Negate(this Expression expression, bool @checked = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The operand. |
| bool | checked | true to perform checked arithmetic operation; otherwise, false. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is -a.
New(Expression, params Expression[])
Constructs type instantiation expression.
Declaration
public static MethodCallExpression New(this Expression type, params Expression[] args)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | type | The expression representing the type to be instantiated. |
| Expression[] | args | The list of arguments to be passed into constructor. |
Returns
| Type | Description |
|---|---|
| MethodCallExpression | Instantiation expression. |
Remarks
The equivalent code is new T().
New(Type, params Expression[])
Constructs type instantiation expression.
Declaration
public static NewExpression New(this Type type, params Expression[] args)
Parameters
| Type | Name | Description |
|---|---|---|
| Type | type | The type to be instantiated. |
| Expression[] | args | The list of arguments to be passed into constructor. |
Returns
| Type | Description |
|---|---|
| NewExpression | Instantiation expression. |
Remarks
The equivalent code is new T().
Not(Expression)
Constructs logical NOT expression.
Declaration
public static UnaryExpression Not(this Expression expression)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is !a.
NotEqual(Expression, Expression)
Constructs inequality comparison.
Declaration
public static BinaryExpression NotEqual(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a != b.
NullCoalescingAssignment(IndexExpression, Expression)
Constructs null-coalescing assignment expression.
Declaration
public static NullCoalescingAssignmentExpression NullCoalescingAssignment(this IndexExpression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| IndexExpression | left | The left operand of the assignment. |
| Expression | right | The right operand of the assignment. |
Returns
| Type | Description |
|---|---|
| NullCoalescingAssignmentExpression | The constructed expression. |
Remarks
The equivalent code is left.Member ??= right;.
Exceptions
| Type | Condition |
|---|---|
| ArgumentException |
|
NullCoalescingAssignment(MemberExpression, Expression)
Constructs null-coalescing assignment expression.
Declaration
public static NullCoalescingAssignmentExpression NullCoalescingAssignment(this MemberExpression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| MemberExpression | left | The left operand of the assignment. |
| Expression | right | The right operand of the assignment. |
Returns
| Type | Description |
|---|---|
| NullCoalescingAssignmentExpression | The constructed expression. |
Remarks
The equivalent code is left.Member ??= right;.
Exceptions
| Type | Condition |
|---|---|
| ArgumentException |
|
NullCoalescingAssignment(ParameterExpression, Expression)
Constructs null-coalescing assignment expression.
Declaration
public static NullCoalescingAssignmentExpression NullCoalescingAssignment(this ParameterExpression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| ParameterExpression | left | The left operand of the assignment. |
| Expression | right | The right operand of the assignment. |
Returns
| Type | Description |
|---|---|
| NullCoalescingAssignmentExpression | The constructed expression. |
Remarks
The equivalent code is left ??= right;.
Exceptions
| Type | Condition |
|---|---|
| ArgumentException |
|
OnesComplement(Expression)
Constructs ones complement.
Declaration
public static UnaryExpression OnesComplement(this Expression expression)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is ~a.
Or(Expression, Expression)
Constructs binary logical OR expression.
Declaration
public static BinaryExpression Or(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a | b.
OrElse(Expression, Expression)
Constructs binary expression that represents a conditional OR operation that evaluates the second operand only if the first operand evaluates to false.
Declaration
public static BinaryExpression OrElse(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The first operand. |
| Expression | right | The second operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a || b.
PostDecrementAssign(IndexExpression)
Constructs an expression that represents the assignment of given expression followed by a subsequent decrement by 1 of the original expression.
Declaration
public static UnaryExpression PostDecrementAssign(this IndexExpression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| IndexExpression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is a.b[i]--.
PostDecrementAssign(MemberExpression)
Constructs an expression that represents the assignment of given expression followed by a subsequent decrement by 1 of the original expression.
Declaration
public static UnaryExpression PostDecrementAssign(this MemberExpression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| MemberExpression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is a.b--.
PostDecrementAssign(ParameterExpression)
Constructs an expression that represents the assignment of given expression followed by a subsequent decrement by 1 of the original expression.
Declaration
public static UnaryExpression PostDecrementAssign(this ParameterExpression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| ParameterExpression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is i--.
PostIncrementAssign(IndexExpression)
Constructs an expression that represents the assignment of given expression followed by a subsequent increment by 1 of the original expression.
Declaration
public static UnaryExpression PostIncrementAssign(this IndexExpression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| IndexExpression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is a.b[i]++.
PostIncrementAssign(MemberExpression)
Constructs an expression that represents the assignment of given expression followed by a subsequent increment by 1 of the original expression.
Declaration
public static UnaryExpression PostIncrementAssign(this MemberExpression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| MemberExpression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is a.b++.
PostIncrementAssign(ParameterExpression)
Constructs an expression that represents the assignment of given expression followed by a subsequent increment by 1 of the original expression.
Declaration
public static UnaryExpression PostIncrementAssign(this ParameterExpression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| ParameterExpression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is i++.
Power(Expression, Expression)
Constructs raising a number to a power expression.
Declaration
public static BinaryExpression Power(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a ^ b in Visual Basic.
PreDecrementAssign(IndexExpression)
Constructs an expression that decrements given expression by 1 and assigns the result back to the expression.
Declaration
public static UnaryExpression PreDecrementAssign(this IndexExpression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| IndexExpression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is --a.b[i].
PreDecrementAssign(MemberExpression)
Constructs an expression that decrements given expression by 1 and assigns the result back to the expression.
Declaration
public static UnaryExpression PreDecrementAssign(this MemberExpression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| MemberExpression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is --a.b.
PreDecrementAssign(ParameterExpression)
Constructs an expression that decrements given expression by 1 and assigns the result back to the expression.
Declaration
public static UnaryExpression PreDecrementAssign(this ParameterExpression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| ParameterExpression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is --i.
PreIncrementAssign(IndexExpression)
Constructs an expression that increments given expression by 1 and assigns the result back to the expression.
Declaration
public static UnaryExpression PreIncrementAssign(this IndexExpression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| IndexExpression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is ++a.b[i].
PreIncrementAssign(MemberExpression)
Constructs an expression that increments given expression by 1 and assigns the result back to the expression.
Declaration
public static UnaryExpression PreIncrementAssign(this MemberExpression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| MemberExpression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is ++a.b.
PreIncrementAssign(ParameterExpression)
Constructs an expression that increments given expression by 1 and assigns the result back to the expression.
Declaration
public static UnaryExpression PreIncrementAssign(this ParameterExpression operand)
Parameters
| Type | Name | Description |
|---|---|---|
| ParameterExpression | operand | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is ++i.
Property(Expression, PropertyInfo)
Constructs instance property access expression.
Declaration
public static MemberExpression Property(this Expression instance, PropertyInfo property)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | instance |
|
| PropertyInfo | property | Property metadata. |
Returns
| Type | Description |
|---|---|
| MemberExpression | Property access expression. |
Remarks
The equivalent code is a.b.
Property(Expression, PropertyInfo, Expression, params Expression[])
Constructs instance indexer access expression.
Declaration
public static IndexExpression Property(this Expression instance, PropertyInfo property, Expression index0, params Expression[] indicies)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | instance |
|
| PropertyInfo | property | Property metadata. |
| Expression | index0 | The first index. |
| Expression[] | indicies | The rest of the indexer arguments. |
Returns
| Type | Description |
|---|---|
| IndexExpression | Property access expression. |
Remarks
The equivalent code is a.b[i].
Property(Expression, string)
Constructs instance property or indexer access expression.
Declaration
public static MemberExpression Property(this Expression instance, string propertyName)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | instance |
|
| string | propertyName | The name of the instance property. |
Returns
| Type | Description |
|---|---|
| MemberExpression | Property access expression. |
Remarks
The equivalent code is a.b.
Property(Expression, string, Expression, params Expression[])
Constructs instance property or indexer access expression.
Declaration
public static IndexExpression Property(this Expression instance, string propertyName, Expression index0, params Expression[] indicies)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | instance |
|
| string | propertyName | The name of the instance indexer. |
| Expression | index0 | The first index. |
| Expression[] | indicies | The rest of the indexer arguments. |
Returns
| Type | Description |
|---|---|
| IndexExpression | Property access expression. |
Remarks
The equivalent code is a.b[i].
Property(Expression, Type, string)
Constructs instance property access expression declared in the given interface or base type.
Declaration
public static MemberExpression Property(this Expression instance, Type interfaceType, string propertyName)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | instance |
|
| Type | interfaceType | The interface or base class declaring property. |
| string | propertyName | The name of the instance property. |
Returns
| Type | Description |
|---|---|
| MemberExpression | Property access expression. |
Remarks
The equivalent code is a.b.
Property(Expression, Type, string, Expression, params Expression[])
Constructs instance property or indexer access expression declared in the given interface or base type.
Declaration
public static IndexExpression Property(this Expression instance, Type interfaceType, string propertyName, Expression index0, params Expression[] indicies)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | instance |
|
| Type | interfaceType | The interface or base class declaring property. |
| string | propertyName | The name of the instance property or indexer. |
| Expression | index0 | The first index. |
| Expression[] | indicies | The rest of the indexer arguments. |
Returns
| Type | Description |
|---|---|
| IndexExpression | Property access expression. |
Remarks
The equivalent code is a.b[i].
Quote(in Index)
Converts index to equivalent expression.
Declaration
public static ItemIndexExpression Quote(this in Index index)
Parameters
| Type | Name | Description |
|---|---|---|
| Index | index | The index value. |
Returns
| Type | Description |
|---|---|
| ItemIndexExpression | Index expression. |
Quote(in Range)
Converts range to equivalent expression.
Declaration
public static RangeExpression Quote(this in Range range)
Parameters
| Type | Name | Description |
|---|---|---|
| Range | range | The range to convert. |
Returns
| Type | Description |
|---|---|
| RangeExpression | The expression representing given range. |
RefAnyVal(ParameterExpression, Type)
Creates a new expression that is equal to refanyval IL instruction.
Declaration
public static RefAnyValExpression RefAnyVal(this ParameterExpression typedRef, Type referenceType)
Parameters
| Type | Name | Description |
|---|---|---|
| ParameterExpression | typedRef | The variable of type TypedReference. |
| Type | referenceType | The type of the managed reference. |
Returns
| Type | Description |
|---|---|
| RefAnyValExpression | The expression representing statically typed referenced. |
RefAnyVal<T>(ParameterExpression)
Creates a new expression that is equal to refanyval IL instruction.
Declaration
public static RefAnyValExpression RefAnyVal<T>(this ParameterExpression typedRef)
Parameters
| Type | Name | Description |
|---|---|---|
| ParameterExpression | typedRef | The variable of type TypedReference. |
Returns
| Type | Description |
|---|---|
| RefAnyValExpression | The expression representing statically typed referenced. |
Type Parameters
| Name | Description |
|---|---|
| T | The type of the managed reference. |
Return(LabelTarget)
Constructs return statement.
Declaration
public static GotoExpression Return(this LabelTarget label)
Parameters
| Type | Name | Description |
|---|---|---|
| LabelTarget | label | The label representing function exit. |
Returns
| Type | Description |
|---|---|
| GotoExpression | Return statement. |
Remarks
The equivalent code is return.
Return(LabelTarget, Expression)
Constructs return statement with given value.
Declaration
public static GotoExpression Return(this LabelTarget label, Expression value)
Parameters
| Type | Name | Description |
|---|---|---|
| LabelTarget | label | The label representing function exit. |
| Expression | value | The value to be returned from function. |
Returns
| Type | Description |
|---|---|
| GotoExpression | Return statement. |
Remarks
The equivalent code is return a.
RightShift(Expression, Expression, bool)
Constructs bitwise right-shift expression.
Declaration
public static Expression RightShift(this Expression left, Expression right, bool isUnsigned = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
| bool | isUnsigned |
Returns
| Type | Description |
|---|---|
| Expression | Binary expression. |
Remarks
The equivalent code is a >> b in Visual Basic.
Slice(Expression, ItemIndexExpression?, ItemIndexExpression?)
Constructs slice of collection or array.
Declaration
public static SliceExpression Slice(this Expression collection, ItemIndexExpression? start = null, ItemIndexExpression? end = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | collection | The collection or array. |
| ItemIndexExpression | start | The first index of slice, inclusive. |
| ItemIndexExpression | end | The last index of slice, exclusive. |
Returns
| Type | Description |
|---|---|
| SliceExpression | The slice of collection or array. |
Slice(Expression, Expression)
Constructs slice of collection or array.
Declaration
public static SliceExpression Slice(this Expression collection, Expression range)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | collection | The collection or array. |
| Expression | range | The range of collection or array. |
Returns
| Type | Description |
|---|---|
| SliceExpression | The slice of collection or array. |
Subtract(Expression, Expression, bool)
Constructs binary arithmetic subtraction expression.
Declaration
public static BinaryExpression Subtract(this Expression left, Expression right, bool @checked = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
| bool | checked | true to perform checked arithmetic operation; otherwise, false. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a - b.
Throw(Expression, Type?)
Constructs throw expression.
Declaration
public static UnaryExpression Throw(this Expression exception, Type? type = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | exception | An exception to be thrown. |
| Type | type | The type of expression. Default is void. |
Returns
| Type | Description |
|---|---|
| UnaryExpression |
|
Remarks
The equivalent code is throw e.
To(ItemIndexExpression, ItemIndexExpression)
Constructs range.
Declaration
public static RangeExpression To(this ItemIndexExpression start, ItemIndexExpression end)
Parameters
| Type | Name | Description |
|---|---|---|
| ItemIndexExpression | start | The inclusive start index of the range. |
| ItemIndexExpression | end | The exclusive end index of the range. |
Returns
| Type | Description |
|---|---|
| RangeExpression | The range expression. |
To(ItemIndexExpression, Index)
Constructs range.
Declaration
public static RangeExpression To(this ItemIndexExpression start, Index end)
Parameters
| Type | Name | Description |
|---|---|---|
| ItemIndexExpression | start | The inclusive start index of the range. |
| Index | end | The exclusive end index of the range. |
Returns
| Type | Description |
|---|---|
| RangeExpression | The range expression. |
TryConvert(Expression, Type)
Constructs an expression that represents an explicit reference or boxing conversion where null is supplied if the conversion fails.
Declaration
public static UnaryExpression TryConvert(this Expression expression, Type type)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The expression to convert. |
| Type | type | The target type. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Type conversion expression. |
Remarks
The equivalent code is a as T.
TryConvert<T>(Expression)
Constructs an expression that represents an explicit reference or boxing conversion where null is supplied if the conversion fails.
Declaration
public static UnaryExpression TryConvert<T>(this Expression expression)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The expression to convert. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Type conversion expression. |
Type Parameters
| Name | Description |
|---|---|
| T | The target type. |
Remarks
The equivalent code is a as T.
UnaryPlus(Expression)
Constructs unary plus expression.
Declaration
public static UnaryExpression UnaryPlus(this Expression expression)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unary expression. |
Remarks
The equivalent code is +a.
Unbox(Expression, Type)
Constructs explicit unboxing.
Declaration
public static UnaryExpression Unbox(this Expression expression, Type type)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The operand. |
| Type | type | The target value type. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unboxing expression. |
Remarks
The equivalent code is (T)b.
Unbox<T>(Expression)
Constructs explicit unboxing.
Declaration
public static UnaryExpression Unbox<T>(this Expression expression) where T : struct
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The operand. |
Returns
| Type | Description |
|---|---|
| UnaryExpression | Unboxing expression. |
Type Parameters
| Name | Description |
|---|---|
| T | The target value type. |
Remarks
The equivalent code is (T)b.
Until(Expression, Statement)
Creates do{ }while() loop expression.
Declaration
public static WhileExpression Until(this Expression condition, WhileExpression.Statement body)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | condition | The loop condition. |
| WhileExpression.Statement | body | The delegate that is used to construct loop body. |
Returns
| Type | Description |
|---|---|
| WhileExpression | The constructed loop expression. |
Remarks
The equivalent code is do { } while(condition).
See Also
| Edit this page View SourceUsing(Expression, Statement)
Creates block of code associated with disposable resource.
Declaration
public static UsingExpression Using(this Expression resource, UsingExpression.Statement body)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | resource | The disposable resource. |
| UsingExpression.Statement | body | The delegate used to construct the block of code. |
Returns
| Type | Description |
|---|---|
| UsingExpression | The constructed expression. |
While(Expression, Statement)
Creates while loop expression.
Declaration
public static WhileExpression While(this Expression condition, WhileExpression.Statement body)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | condition | The loop condition. |
| WhileExpression.Statement | body | The delegate that is used to construct loop body. |
Returns
| Type | Description |
|---|---|
| WhileExpression | The constructed loop expression. |
Remarks
The equivalent code is while(condition) { }.
See Also
| Edit this page View SourceWith(Expression, MemberBindings)
Creates a new instance of MutationExpression.
Declaration
public static MutationExpression With(this Expression obj, MemberBindings bindings)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | obj | An expression representing an object to copy. |
| MemberBindings | bindings | A collection of members to mutate. |
Returns
| Type | Description |
|---|---|
| MutationExpression | The constructed expression. |
See Also
| Edit this page View SourceWith(Expression, Statement)
Creates a new instance of WithExpression.
Declaration
public static WithExpression With(this Expression obj, WithExpression.Statement body)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | obj | The object to be referred inside of the body. |
| WithExpression.Statement | body | The body of the expression. |
Returns
| Type | Description |
|---|---|
| WithExpression | The constructed expression. |
See Also
| Edit this page View SourceXor(Expression, Expression)
Constructs binary logical exclusive OR expression.
Declaration
public static BinaryExpression Xor(this Expression left, Expression right)
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | left | The left operand. |
| Expression | right | The right operand. |
Returns
| Type | Description |
|---|---|
| BinaryExpression | Binary expression. |
Remarks
The equivalent code is a ^ b.