NewArrayExpression Класс

Определение

Представляет создание нового массива и возможную инициализацию элемента нового массива.Represents creating a new array and possibly initializing the elements of the new array.

public ref class NewArrayExpression : System::Linq::Expressions::Expression
public class NewArrayExpression : System.Linq.Expressions.Expression
type NewArrayExpression = class
    inherit Expression
Public Class NewArrayExpression
Inherits Expression
Наследование
NewArrayExpression

Примеры

В следующем примере создается NewArrayExpression объект, представляющий создание и инициализацию одномерного массива строк.The following example creates a NewArrayExpression object that represents creating and initializing a one-dimensional array of strings.

List<System.Linq.Expressions.Expression> trees =
    new List<System.Linq.Expressions.Expression>()
        { System.Linq.Expressions.Expression.Constant("oak"),
          System.Linq.Expressions.Expression.Constant("fir"),
          System.Linq.Expressions.Expression.Constant("spruce"),
          System.Linq.Expressions.Expression.Constant("alder") };

// Create an expression tree that represents creating and  
// initializing a one-dimensional array of type string.
System.Linq.Expressions.NewArrayExpression newArrayExpression =
    System.Linq.Expressions.Expression.NewArrayInit(typeof(string), trees);

// Output the string representation of the Expression.
Console.WriteLine(newArrayExpression.ToString());

// This code produces the following output:
//
// new [] {"oak", "fir", "spruce", "alder"}
Dim trees As New System.Collections.Generic.List(Of System.Linq.Expressions.Expression) _
        (New System.Linq.Expressions.Expression() _
         {System.Linq.Expressions.Expression.Constant("oak"), _
          System.Linq.Expressions.Expression.Constant("fir"), _
          System.Linq.Expressions.Expression.Constant("spruce"), _
          System.Linq.Expressions.Expression.Constant("alder")})

' Create an expression tree that represents creating and  
' initializing a one-dimensional array of type string.
Dim newArrayExpression As System.Linq.Expressions.NewArrayExpression = _
    System.Linq.Expressions.Expression.NewArrayInit(Type.GetType("System.String"), trees)

' Output the string representation of the Expression.
Console.WriteLine(newArrayExpression.ToString())

' This code produces the following output:
'
' new [] {"oak", "fir", "spruce", "alder"}

В следующем примере создается NewArrayExpression объект, который представляет создание двумерного массива строк.The next example creates a NewArrayExpression object that represents creating a two-dimensional array of strings.

// Create an expression tree that represents creating a 
// two-dimensional array of type string with bounds [3,2].
System.Linq.Expressions.NewArrayExpression newArrayExpression =
    System.Linq.Expressions.Expression.NewArrayBounds(
            typeof(string),
            System.Linq.Expressions.Expression.Constant(3),
            System.Linq.Expressions.Expression.Constant(2));

// Output the string representation of the Expression.
Console.WriteLine(newArrayExpression.ToString());

// This code produces the following output:
//
// new System.String[,](3, 2)
' Create an expression tree that represents creating a string
' array with rank 2 and bounds (3,2).
Dim newArrayExpression As System.Linq.Expressions.NewArrayExpression = _
    System.Linq.Expressions.Expression.NewArrayBounds( _
            Type.GetType("System.String"), _
            System.Linq.Expressions.Expression.Constant(3), _
            System.Linq.Expressions.Expression.Constant(2))

' Output the string representation of the Expression.
Console.WriteLine(newArrayExpression.ToString())

' This code produces the following output:
'
' new System.String[,](3, 2)

Комментарии

В следующей таблице показаны различные заводские методы, которые можно использовать для создания в NewArrayExpression зависимости NodeType от того, что требуется.The following table shows the different factory methods that you can use to create a NewArrayExpression depending on the NodeType you require.

NodeType Фабричные методыFactory Methods
NewArrayBounds NewArrayBounds
NewArrayInit NewArrayInit

Свойства

CanReduce

Указывает, что узел можно сократить до более простого.Indicates that the node can be reduced to a simpler node. Если возвращается значение true, для получения сокращенной формы можно вызвать Reduce().If this returns true, Reduce() can be called to produce the reduced form.

(Унаследовано от Expression)
Expressions

Получает границы массива, если значение свойства NodeType равно NewArrayBounds или если значения используются для инициализации элементов нового массива, если значение свойства NodeType равно NewArrayInit.Gets the bounds of the array if the value of the NodeType property is NewArrayBounds, or the values to initialize the elements of the new array if the value of the NodeType property is NewArrayInit.

NodeType

Получает тип узла данного объекта Expression.Gets the node type of this Expression.

(Унаследовано от Expression)
Type

Получает статичный тип выражения, представленного этим выражением Expression.Gets the static type of the expression that this Expression represents.

Методы

Accept(ExpressionVisitor)

Отправляет в конкретный метод Visit для данного типа узла.Dispatches to the specific visit method for this node type. Например, объект MethodCallExpression вызывает метод VisitMethodCall(MethodCallExpression).For example, MethodCallExpression calls the VisitMethodCall(MethodCallExpression).

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
Reduce()

Преобразует данный узел в более простое выражение.Reduces this node to a simpler expression. Если CanReduce возвращает значение true, данный метод должен вернуть допустимое выражение.If CanReduce returns true, this should return a valid expression. Данный метод может вернуть другой узел, который нужно будет преобразовать еще раз.This method can return another node which itself must be reduced.

(Унаследовано от Expression)
ReduceAndCheck()

Преобразует данный узел в более простое выражение.Reduces this node to a simpler expression. Если CanReduce возвращает значение true, данный метод должен вернуть допустимое выражение.If CanReduce returns true, this should return a valid expression. Данный метод может вернуть другой узел, который нужно будет преобразовать еще раз.This method can return another node which itself must be reduced.

(Унаследовано от Expression)
ReduceExtensions()

Упрощает выражение до известного типа узла (не являющегося узлом Extension) или возвращает выражение, если оно имеет известный тип.Reduces the expression to a known node type (that is not an Extension node) or just returns the expression if it is already a known type.

(Унаследовано от Expression)
ToString()

Возвращает текстовое представление текущего объекта Expression.Returns a textual representation of the Expression.

(Унаследовано от Expression)
Update(IEnumerable<Expression>)

Создает новое выражение, идентичное данному, но использующее предоставленные дочерние элементы.Creates a new expression that is like this one, but using the supplied children. Если все дочерние элементы идентичны, возвращается данное выражение.If all of the children are the same, it will return this expression.

VisitChildren(ExpressionVisitor)

Упрощает узел и вызывает делегат-посетитель для преобразованного выражения.Reduces the node and then calls the visitor delegate on the reduced expression. Данный метод создает исключение, если узел невозможно упростить.The method throws an exception if the node is not reducible.

(Унаследовано от Expression)

Применяется к