System.Linq.Expressions.MemberInitExpression.ReduceMemberInit C# (CSharp) Méthode

ReduceMemberInit() static private méthode

static private ReduceMemberInit ( Expression objExpression, ReadOnlyCollection bindings, bool keepOnStack ) : Expression
objExpression Expression
bindings ReadOnlyCollection
keepOnStack bool
Résultat Expression
        internal static Expression ReduceMemberInit(Expression objExpression, ReadOnlyCollection<MemberBinding> bindings, bool keepOnStack)
        {
            ParameterExpression objVar = Expression.Variable(objExpression.Type, name: null);
            int count = bindings.Count;
            var block = new Expression[count + 2];
            block[0] = Expression.Assign(objVar, objExpression);
            for (int i = 0; i < count; i++)
            {
                block[i + 1] = ReduceMemberBinding(objVar, bindings[i]);
            }
            block[count + 1] = keepOnStack ? (Expression)objVar : Utils.Empty;
            return Expression.Block(new TrueReadOnlyCollection<Expression>(block));
        }