Show / Hide Table of Contents

Class MutationExpression

Represents record mutation expression.

Inheritance
object
Expression
CustomExpression
MutationExpression
Inherited Members
CustomExpression.NodeType
CustomExpression.CanReduce
Expression.Assign(Expression, Expression)
Expression.MakeBinary(ExpressionType, Expression, Expression)
Expression.MakeBinary(ExpressionType, Expression, Expression, bool, MethodInfo)
Expression.MakeBinary(ExpressionType, Expression, Expression, bool, MethodInfo, LambdaExpression)
Expression.Equal(Expression, Expression)
Expression.Equal(Expression, Expression, bool, MethodInfo)
Expression.ReferenceEqual(Expression, Expression)
Expression.NotEqual(Expression, Expression)
Expression.NotEqual(Expression, Expression, bool, MethodInfo)
Expression.ReferenceNotEqual(Expression, Expression)
Expression.GreaterThan(Expression, Expression)
Expression.GreaterThan(Expression, Expression, bool, MethodInfo)
Expression.LessThan(Expression, Expression)
Expression.LessThan(Expression, Expression, bool, MethodInfo)
Expression.GreaterThanOrEqual(Expression, Expression)
Expression.GreaterThanOrEqual(Expression, Expression, bool, MethodInfo)
Expression.LessThanOrEqual(Expression, Expression)
Expression.LessThanOrEqual(Expression, Expression, bool, MethodInfo)
Expression.AndAlso(Expression, Expression)
Expression.AndAlso(Expression, Expression, MethodInfo)
Expression.OrElse(Expression, Expression)
Expression.OrElse(Expression, Expression, MethodInfo)
Expression.Coalesce(Expression, Expression)
Expression.Coalesce(Expression, Expression, LambdaExpression)
Expression.Add(Expression, Expression)
Expression.Add(Expression, Expression, MethodInfo)
Expression.AddAssign(Expression, Expression)
Expression.AddAssign(Expression, Expression, MethodInfo)
Expression.AddAssign(Expression, Expression, MethodInfo, LambdaExpression)
Expression.AddAssignChecked(Expression, Expression)
Expression.AddAssignChecked(Expression, Expression, MethodInfo)
Expression.AddAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)
Expression.AddChecked(Expression, Expression)
Expression.AddChecked(Expression, Expression, MethodInfo)
Expression.Subtract(Expression, Expression)
Expression.Subtract(Expression, Expression, MethodInfo)
Expression.SubtractAssign(Expression, Expression)
Expression.SubtractAssign(Expression, Expression, MethodInfo)
Expression.SubtractAssign(Expression, Expression, MethodInfo, LambdaExpression)
Expression.SubtractAssignChecked(Expression, Expression)
Expression.SubtractAssignChecked(Expression, Expression, MethodInfo)
Expression.SubtractAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)
Expression.SubtractChecked(Expression, Expression)
Expression.SubtractChecked(Expression, Expression, MethodInfo)
Expression.Divide(Expression, Expression)
Expression.Divide(Expression, Expression, MethodInfo)
Expression.DivideAssign(Expression, Expression)
Expression.DivideAssign(Expression, Expression, MethodInfo)
Expression.DivideAssign(Expression, Expression, MethodInfo, LambdaExpression)
Expression.Modulo(Expression, Expression)
Expression.Modulo(Expression, Expression, MethodInfo)
Expression.ModuloAssign(Expression, Expression)
Expression.ModuloAssign(Expression, Expression, MethodInfo)
Expression.ModuloAssign(Expression, Expression, MethodInfo, LambdaExpression)
Expression.Multiply(Expression, Expression)
Expression.Multiply(Expression, Expression, MethodInfo)
Expression.MultiplyAssign(Expression, Expression)
Expression.MultiplyAssign(Expression, Expression, MethodInfo)
Expression.MultiplyAssign(Expression, Expression, MethodInfo, LambdaExpression)
Expression.MultiplyAssignChecked(Expression, Expression)
Expression.MultiplyAssignChecked(Expression, Expression, MethodInfo)
Expression.MultiplyAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)
Expression.MultiplyChecked(Expression, Expression)
Expression.MultiplyChecked(Expression, Expression, MethodInfo)
Expression.LeftShift(Expression, Expression)
Expression.LeftShift(Expression, Expression, MethodInfo)
Expression.LeftShiftAssign(Expression, Expression)
Expression.LeftShiftAssign(Expression, Expression, MethodInfo)
Expression.LeftShiftAssign(Expression, Expression, MethodInfo, LambdaExpression)
Expression.RightShift(Expression, Expression)
Expression.RightShift(Expression, Expression, MethodInfo)
Expression.RightShiftAssign(Expression, Expression)
Expression.RightShiftAssign(Expression, Expression, MethodInfo)
Expression.RightShiftAssign(Expression, Expression, MethodInfo, LambdaExpression)
Expression.And(Expression, Expression)
Expression.And(Expression, Expression, MethodInfo)
Expression.AndAssign(Expression, Expression)
Expression.AndAssign(Expression, Expression, MethodInfo)
Expression.AndAssign(Expression, Expression, MethodInfo, LambdaExpression)
Expression.Or(Expression, Expression)
Expression.Or(Expression, Expression, MethodInfo)
Expression.OrAssign(Expression, Expression)
Expression.OrAssign(Expression, Expression, MethodInfo)
Expression.OrAssign(Expression, Expression, MethodInfo, LambdaExpression)
Expression.ExclusiveOr(Expression, Expression)
Expression.ExclusiveOr(Expression, Expression, MethodInfo)
Expression.ExclusiveOrAssign(Expression, Expression)
Expression.ExclusiveOrAssign(Expression, Expression, MethodInfo)
Expression.ExclusiveOrAssign(Expression, Expression, MethodInfo, LambdaExpression)
Expression.Power(Expression, Expression)
Expression.Power(Expression, Expression, MethodInfo)
Expression.PowerAssign(Expression, Expression)
Expression.PowerAssign(Expression, Expression, MethodInfo)
Expression.PowerAssign(Expression, Expression, MethodInfo, LambdaExpression)
Expression.ArrayIndex(Expression, Expression)
Expression.Block(Expression, Expression)
Expression.Block(Expression, Expression, Expression)
Expression.Block(Expression, Expression, Expression, Expression)
Expression.Block(Expression, Expression, Expression, Expression, Expression)
Expression.Block(params Expression[])
Expression.Block(IEnumerable<Expression>)
Expression.Block(Type, params Expression[])
Expression.Block(Type, IEnumerable<Expression>)
Expression.Block(IEnumerable<ParameterExpression>, params Expression[])
Expression.Block(Type, IEnumerable<ParameterExpression>, params Expression[])
Expression.Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>)
Expression.Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>)
Expression.Catch(Type, Expression)
Expression.Catch(ParameterExpression, Expression)
Expression.Catch(Type, Expression, Expression)
Expression.Catch(ParameterExpression, Expression, Expression)
Expression.MakeCatchBlock(Type, ParameterExpression, Expression, Expression)
Expression.Condition(Expression, Expression, Expression)
Expression.Condition(Expression, Expression, Expression, Type)
Expression.IfThen(Expression, Expression)
Expression.IfThenElse(Expression, Expression, Expression)
Expression.Constant(object)
Expression.Constant(object, Type)
Expression.DebugInfo(SymbolDocumentInfo, int, int, int, int)
Expression.ClearDebugInfo(SymbolDocumentInfo)
Expression.Empty()
Expression.Default(Type)
Expression.ElementInit(MethodInfo, params Expression[])
Expression.ElementInit(MethodInfo, IEnumerable<Expression>)
Expression.ReduceAndCheck()
Expression.ReduceExtensions()
Expression.ToString()
Expression.Dynamic(CallSiteBinder, Type, IEnumerable<Expression>)
Expression.Dynamic(CallSiteBinder, Type, Expression)
Expression.Dynamic(CallSiteBinder, Type, Expression, Expression)
Expression.Dynamic(CallSiteBinder, Type, Expression, Expression, Expression)
Expression.Dynamic(CallSiteBinder, Type, Expression, Expression, Expression, Expression)
Expression.Dynamic(CallSiteBinder, Type, params Expression[])
Expression.MakeDynamic(Type, CallSiteBinder, IEnumerable<Expression>)
Expression.MakeDynamic(Type, CallSiteBinder, Expression)
Expression.MakeDynamic(Type, CallSiteBinder, Expression, Expression)
Expression.MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression)
Expression.MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression, Expression)
Expression.MakeDynamic(Type, CallSiteBinder, params Expression[])
Expression.Break(LabelTarget)
Expression.Break(LabelTarget, Expression)
Expression.Break(LabelTarget, Type)
Expression.Break(LabelTarget, Expression, Type)
Expression.Continue(LabelTarget)
Expression.Continue(LabelTarget, Type)
Expression.Return(LabelTarget)
Expression.Return(LabelTarget, Type)
Expression.Return(LabelTarget, Expression)
Expression.Return(LabelTarget, Expression, Type)
Expression.Goto(LabelTarget)
Expression.Goto(LabelTarget, Type)
Expression.Goto(LabelTarget, Expression)
Expression.Goto(LabelTarget, Expression, Type)
Expression.MakeGoto(GotoExpressionKind, LabelTarget, Expression, Type)
Expression.MakeIndex(Expression, PropertyInfo, IEnumerable<Expression>)
Expression.ArrayAccess(Expression, params Expression[])
Expression.ArrayAccess(Expression, IEnumerable<Expression>)
Expression.Property(Expression, string, params Expression[])
Expression.Property(Expression, PropertyInfo, params Expression[])
Expression.Property(Expression, PropertyInfo, IEnumerable<Expression>)
Expression.Invoke(Expression, params Expression[])
Expression.Invoke(Expression, IEnumerable<Expression>)
Expression.Label(LabelTarget)
Expression.Label(LabelTarget, Expression)
Expression.Label()
Expression.Label(string)
Expression.Label(Type)
Expression.Label(Type, string)
Expression.Lambda<TDelegate>(Expression, params ParameterExpression[])
Expression.Lambda<TDelegate>(Expression, bool, params ParameterExpression[])
Expression.Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>)
Expression.Lambda<TDelegate>(Expression, bool, IEnumerable<ParameterExpression>)
Expression.Lambda<TDelegate>(Expression, string, IEnumerable<ParameterExpression>)
Expression.Lambda<TDelegate>(Expression, string, bool, IEnumerable<ParameterExpression>)
Expression.Lambda(Expression, params ParameterExpression[])
Expression.Lambda(Expression, bool, params ParameterExpression[])
Expression.Lambda(Expression, IEnumerable<ParameterExpression>)
Expression.Lambda(Expression, bool, IEnumerable<ParameterExpression>)
Expression.Lambda(Type, Expression, params ParameterExpression[])
Expression.Lambda(Type, Expression, bool, params ParameterExpression[])
Expression.Lambda(Type, Expression, IEnumerable<ParameterExpression>)
Expression.Lambda(Type, Expression, bool, IEnumerable<ParameterExpression>)
Expression.Lambda(Expression, string, IEnumerable<ParameterExpression>)
Expression.Lambda(Expression, string, bool, IEnumerable<ParameterExpression>)
Expression.Lambda(Type, Expression, string, IEnumerable<ParameterExpression>)
Expression.Lambda(Type, Expression, string, bool, IEnumerable<ParameterExpression>)
Expression.GetFuncType(params Type[])
Expression.TryGetFuncType(Type[], out Type)
Expression.GetActionType(params Type[])
Expression.TryGetActionType(Type[], out Type)
Expression.GetDelegateType(params Type[])
Expression.ListInit(NewExpression, params Expression[])
Expression.ListInit(NewExpression, IEnumerable<Expression>)
Expression.ListInit(NewExpression, MethodInfo, params Expression[])
Expression.ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)
Expression.ListInit(NewExpression, params ElementInit[])
Expression.ListInit(NewExpression, IEnumerable<ElementInit>)
Expression.Loop(Expression)
Expression.Loop(Expression, LabelTarget)
Expression.Loop(Expression, LabelTarget, LabelTarget)
Expression.Bind(MemberInfo, Expression)
Expression.Bind(MethodInfo, Expression)
Expression.Field(Expression, FieldInfo)
Expression.Field(Expression, string)
Expression.Field(Expression, Type, string)
Expression.Property(Expression, string)
Expression.Property(Expression, Type, string)
Expression.Property(Expression, PropertyInfo)
Expression.Property(Expression, MethodInfo)
Expression.PropertyOrField(Expression, string)
Expression.MakeMemberAccess(Expression, MemberInfo)
Expression.MemberInit(NewExpression, params MemberBinding[])
Expression.MemberInit(NewExpression, IEnumerable<MemberBinding>)
Expression.ListBind(MemberInfo, params ElementInit[])
Expression.ListBind(MemberInfo, IEnumerable<ElementInit>)
Expression.ListBind(MethodInfo, params ElementInit[])
Expression.ListBind(MethodInfo, IEnumerable<ElementInit>)
Expression.MemberBind(MemberInfo, params MemberBinding[])
Expression.MemberBind(MemberInfo, IEnumerable<MemberBinding>)
Expression.MemberBind(MethodInfo, params MemberBinding[])
Expression.MemberBind(MethodInfo, IEnumerable<MemberBinding>)
Expression.Call(MethodInfo, Expression)
Expression.Call(MethodInfo, Expression, Expression)
Expression.Call(MethodInfo, Expression, Expression, Expression)
Expression.Call(MethodInfo, Expression, Expression, Expression, Expression)
Expression.Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)
Expression.Call(MethodInfo, params Expression[])
Expression.Call(MethodInfo, IEnumerable<Expression>)
Expression.Call(Expression, MethodInfo)
Expression.Call(Expression, MethodInfo, params Expression[])
Expression.Call(Expression, MethodInfo, Expression, Expression)
Expression.Call(Expression, MethodInfo, Expression, Expression, Expression)
Expression.Call(Expression, string, Type[], params Expression[])
Expression.Call(Type, string, Type[], params Expression[])
Expression.Call(Expression, MethodInfo, IEnumerable<Expression>)
Expression.ArrayIndex(Expression, params Expression[])
Expression.ArrayIndex(Expression, IEnumerable<Expression>)
Expression.NewArrayInit(Type, params Expression[])
Expression.NewArrayInit(Type, IEnumerable<Expression>)
Expression.NewArrayBounds(Type, params Expression[])
Expression.NewArrayBounds(Type, IEnumerable<Expression>)
Expression.New(ConstructorInfo)
Expression.New(ConstructorInfo, params Expression[])
Expression.New(ConstructorInfo, IEnumerable<Expression>)
Expression.New(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>)
Expression.New(ConstructorInfo, IEnumerable<Expression>, params MemberInfo[])
Expression.New(Type)
Expression.Parameter(Type)
Expression.Variable(Type)
Expression.Parameter(Type, string)
Expression.Variable(Type, string)
Expression.RuntimeVariables(params ParameterExpression[])
Expression.RuntimeVariables(IEnumerable<ParameterExpression>)
Expression.SwitchCase(Expression, params Expression[])
Expression.SwitchCase(Expression, IEnumerable<Expression>)
Expression.Switch(Expression, params SwitchCase[])
Expression.Switch(Expression, Expression, params SwitchCase[])
Expression.Switch(Expression, Expression, MethodInfo, params SwitchCase[])
Expression.Switch(Type, Expression, Expression, MethodInfo, params SwitchCase[])
Expression.Switch(Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)
Expression.Switch(Type, Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)
Expression.SymbolDocument(string)
Expression.SymbolDocument(string, Guid)
Expression.SymbolDocument(string, Guid, Guid)
Expression.SymbolDocument(string, Guid, Guid, Guid)
Expression.TryFault(Expression, Expression)
Expression.TryFinally(Expression, Expression)
Expression.TryCatch(Expression, params CatchBlock[])
Expression.TryCatchFinally(Expression, Expression, params CatchBlock[])
Expression.MakeTry(Type, Expression, Expression, Expression, IEnumerable<CatchBlock>)
Expression.TypeIs(Expression, Type)
Expression.TypeEqual(Expression, Type)
Expression.MakeUnary(ExpressionType, Expression, Type)
Expression.MakeUnary(ExpressionType, Expression, Type, MethodInfo)
Expression.Negate(Expression)
Expression.Negate(Expression, MethodInfo)
Expression.UnaryPlus(Expression)
Expression.UnaryPlus(Expression, MethodInfo)
Expression.NegateChecked(Expression)
Expression.NegateChecked(Expression, MethodInfo)
Expression.Not(Expression)
Expression.Not(Expression, MethodInfo)
Expression.IsFalse(Expression)
Expression.IsFalse(Expression, MethodInfo)
Expression.IsTrue(Expression)
Expression.IsTrue(Expression, MethodInfo)
Expression.OnesComplement(Expression)
Expression.OnesComplement(Expression, MethodInfo)
Expression.TypeAs(Expression, Type)
Expression.Unbox(Expression, Type)
Expression.Convert(Expression, Type)
Expression.Convert(Expression, Type, MethodInfo)
Expression.ConvertChecked(Expression, Type)
Expression.ConvertChecked(Expression, Type, MethodInfo)
Expression.ArrayLength(Expression)
Expression.Quote(Expression)
Expression.Rethrow()
Expression.Rethrow(Type)
Expression.Throw(Expression)
Expression.Throw(Expression, Type)
Expression.Increment(Expression)
Expression.Increment(Expression, MethodInfo)
Expression.Decrement(Expression)
Expression.Decrement(Expression, MethodInfo)
Expression.PreIncrementAssign(Expression)
Expression.PreIncrementAssign(Expression, MethodInfo)
Expression.PreDecrementAssign(Expression)
Expression.PreDecrementAssign(Expression, MethodInfo)
Expression.PostIncrementAssign(Expression)
Expression.PostIncrementAssign(Expression, MethodInfo)
Expression.PostDecrementAssign(Expression)
Expression.PostDecrementAssign(Expression, MethodInfo)
object.GetType()
object.Equals(object)
object.Equals(object, object)
object.ReferenceEquals(object, object)
object.GetHashCode()
Namespace: DotNext.Linq.Expressions
Assembly: DotNext.Metaprogramming.dll
Syntax
public sealed class MutationExpression : CustomExpression

Properties

View Source

Bindings

Gets mutation expressions.

Declaration
public IReadOnlyList<MemberAssignment> Bindings { get; }
Property Value
Type Description
IReadOnlyList<MemberAssignment>
View Source

Expression

Gets the object to copy.

Declaration
public Expression Expression { get; }
Property Value
Type Description
Expression
View Source

Type

Gets type of this expression.

Declaration
public override Type Type { get; }
Property Value
Type Description
Type
Overrides
Expression.Type

Methods

View Source

Create(Expression, MemberBindings)

Creates an expression equivalent to with operator in C#.

Declaration
public static MutationExpression Create(Expression target, MemberBindings bindings)
Parameters
Type Name Description
Expression target

The left operand.

MemberBindings bindings

The initialization list.

Returns
Type Description
MutationExpression

A new object representing mutation expression.

Exceptions
Type Condition
ArgumentNullException

target is null.

View Source

Create(Expression, IReadOnlyList<MemberAssignment>)

Creates an expression equivalent to with operator in C#.

Declaration
public static MutationExpression Create(Expression target, IReadOnlyList<MemberAssignment> bindings)
Parameters
Type Name Description
Expression target

The left operand.

IReadOnlyList<MemberAssignment> bindings

The initialization list.

Returns
Type Description
MutationExpression

A new object representing mutation expression.

Exceptions
Type Condition
ArgumentNullException

target is null.

View Source

Reduce()

Translates this expression into predefined set of expressions using Lowering technique.

Declaration
public override Expression Reduce()
Returns
Type Description
Expression

Translated expression.

Overrides
CustomExpression.Reduce()
View Source

VisitChildren(ExpressionVisitor)

Visit children expressions.

Declaration
protected override MutationExpression VisitChildren(ExpressionVisitor visitor)
Parameters
Type Name Description
ExpressionVisitor visitor

Expression visitor.

Returns
Type Description
MutationExpression

Potentially modified expression if one of children expressions is modified during visit.

Overrides
Expression.VisitChildren(ExpressionVisitor)

Extension Methods

BasicExtensions.As<T>(T)
BasicExtensions.IsBetween<T, TLowerBound, TUpperBound>(T, TLowerBound, TUpperBound)
BasicExtensions.IsOneOf<T>(T, params ReadOnlySpan<T>)
ExpressionBuilder.AndAlso(Expression, Expression)
ExpressionBuilder.AsDynamic(Expression?)
ExpressionBuilder.AsResult(Expression)
ExpressionBuilder.AsString(Expression)
ExpressionBuilder.Await(Expression, bool)
ExpressionBuilder.Call(Expression, MethodInfo, params Expression[])
ExpressionBuilder.Call(Expression, string, params Expression[])
ExpressionBuilder.Call(Expression, Type, string, params Expression[])
ExpressionBuilder.Concat(Expression, params Expression[])
ExpressionBuilder.Condition(Expression, Expression?, Expression?, Type?)
ExpressionBuilder.Condition<TResult>(Expression, Expression, Expression)
ExpressionBuilder.Convert(Expression, Type)
ExpressionBuilder.Convert<T>(Expression)
ExpressionBuilder.ElementAt(Expression, ItemIndexExpression)
ExpressionBuilder.ElementAt(Expression, params Expression[])
ExpressionBuilder.Equal(Expression, Expression)
ExpressionBuilder.Field(Expression, FieldInfo)
ExpressionBuilder.Field(Expression, string)
ExpressionBuilder.Finally(Expression, Expression)
ExpressionBuilder.For(Expression, ForExpression.LoopBuilder.Condition, ForExpression.LoopBuilder.Iteration, ForExpression.LoopBuilder.Statement)
ExpressionBuilder.ForEach(Expression, ForEachExpression.Statement)
ExpressionBuilder.IfNotNull(Expression, Func<ParameterExpression, Expression>)
ExpressionBuilder.Index(Expression, bool)
ExpressionBuilder.InstanceOf(Expression, Type)
ExpressionBuilder.InstanceOf<T>(Expression)
ExpressionBuilder.Invoke(Expression, params Expression[])
ExpressionBuilder.Lock(Expression, LockExpression.Statement)
ExpressionBuilder.Loop(Expression)
ExpressionBuilder.Loop(Expression, LabelTarget)
ExpressionBuilder.Loop(Expression, LabelTarget, LabelTarget)
ExpressionBuilder.New(Expression, params Expression[])
ExpressionBuilder.NotEqual(Expression, Expression)
ExpressionBuilder.OrElse(Expression, Expression)
ExpressionBuilder.Power(Expression, Expression)
ExpressionBuilder.Property(Expression, PropertyInfo)
ExpressionBuilder.Property(Expression, PropertyInfo, Expression, params Expression[])
ExpressionBuilder.Property(Expression, string)
ExpressionBuilder.Property(Expression, string, Expression, params Expression[])
ExpressionBuilder.Property(Expression, Type, string)
ExpressionBuilder.Property(Expression, Type, string, Expression, params Expression[])
ExpressionBuilder.Slice(Expression, ItemIndexExpression?, ItemIndexExpression?)
ExpressionBuilder.Slice(Expression, Expression)
ExpressionBuilder.Throw(Expression, Type?)
ExpressionBuilder.TryConvert(Expression, Type)
ExpressionBuilder.TryConvert<T>(Expression)
ExpressionBuilder.Unbox(Expression, Type)
ExpressionBuilder.Unbox<T>(Expression)
ExpressionBuilder.Until(Expression, WhileExpression.Statement)
ExpressionBuilder.Using(Expression, UsingExpression.Statement)
ExpressionBuilder.While(Expression, WhileExpression.Statement)
ExpressionBuilder.With(Expression, MemberBindings)
ExpressionBuilder.With(Expression, WithExpression.Statement)

See Also

with expression
  • View Source
☀
☾
In this article
Back to top
Supported by the .NET Foundation
☀
☾