NewArrayExpression Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa a criação de um novo array e possivelmente a inicialização dos elementos do novo array.
public ref class NewArrayExpression : System::Linq::Expressions::Expression
public ref class NewArrayExpression sealed : System::Linq::Expressions::Expression
public class NewArrayExpression : System.Linq.Expressions.Expression
public sealed class NewArrayExpression : System.Linq.Expressions.Expression
type NewArrayExpression = class
inherit Expression
Public Class NewArrayExpression
Inherits Expression
Public NotInheritable Class NewArrayExpression
Inherits Expression
- Herança
Exemplos
O exemplo seguinte cria um NewArrayExpression objeto que representa a criação e inicialização de um array unidimensional de 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"}
O exemplo seguinte cria um NewArrayExpression objeto que representa a criação de uma matriz bidimensional de cordas.
// 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)
Observações
A tabela seguinte mostra os diferentes métodos de fábrica que pode usar para criar um NewArrayExpression conceito consoante o NodeType que necessita.
| NodeType | Métodos de Fábrica |
|---|---|
| NewArrayBounds | NewArrayBounds |
| NewArrayInit | NewArrayInit |
Propriedades
| Name | Description |
|---|---|
| CanReduce |
Indica que o nó pode ser reduzido a um nó mais simples. Se isto devolver verdadeiro, Reduce() pode ser chamado para produzir a forma reduzida. (Herdado de Expression) |
| Expressions |
Obtém os limites do array se o valor da NodeType propriedade for NewArrayBounds, ou os valores para inicializar os elementos do novo array se o valor da NodeType propriedade for NewArrayInit. |
| NodeType |
Obtém o tipo de nó deste Expression. (Herdado de Expression) |
| Type |
Obtém o tipo estático da expressão que isto Expression representa. |
| Type |
Obtém o tipo estático da expressão que isto Expression representa. (Herdado de Expression) |
Métodos
| Name | Description |
|---|---|
| Accept(ExpressionVisitor) |
Despacha para o método de visita específico para este tipo de nó. Por exemplo, MethodCallExpression chama o VisitMethodCall(MethodCallExpression). |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| Reduce() |
Reduz este nó a uma expressão mais simples. Se o CanReduce devolver verdadeiro, isto deverá devolver uma expressão válida. Este método pode devolver outro nó que, por sua vez, deve ser reduzido. (Herdado de Expression) |
| ReduceAndCheck() |
Reduz este nó a uma expressão mais simples. Se o CanReduce devolver verdadeiro, isto deverá devolver uma expressão válida. Este método pode devolver outro nó que, por sua vez, deve ser reduzido. (Herdado de Expression) |
| ReduceExtensions() |
Reduz a expressão para um tipo de nó conhecido (que não é um nó de Extensão) ou simplesmente devolve a expressão se já for um tipo conhecido. (Herdado de Expression) |
| ToString() |
Devolve uma representação textual do Expression. (Herdado de Expression) |
| Update(IEnumerable<Expression>) |
Cria uma nova expressão semelhante a esta, mas usando os filhos fornecidos. Se todas as crianças forem iguais, ela devolverá essa expressão. |
| VisitChildren(ExpressionVisitor) |
Reduz o nó e depois chama o delegado visitante na expressão reduzida. O método lança uma exceção se o nó não for redutível. (Herdado de Expression) |