UnaryExpression (Clase) (System.Linq.Expressions)

Cambiar vista:
Sin script
Biblioteca de clases de .NET Framework
UnaryExpression (Clase)
Este artículo se tradujo de forma manual. Para mostrar esta página y el contenido original en inglés al mismo tiempo, cambie a Lightweight según sus preferencias de visualización.

Representa una expresión que tiene un operador unario.

Jerarquía de herencia

System.Object
  System.Linq.Expressions.Expression
    System.Linq.Expressions.UnaryExpression

Espacio de nombres:  System.Linq.Expressions
Ensamblado:  System.Core (en System.Core.dll)
Sintaxis

Visual Basic
Public NotInheritable Class UnaryExpression _
	Inherits Expression
C#
public sealed class UnaryExpression : Expression
Visual C++
public ref class UnaryExpression sealed : public Expression
F#
[<Sealed>]
type UnaryExpression =  
    class
        inherit Expression
    end

El tipo UnaryExpression expone los siguientes miembros.

Propiedades

  Nombre Descripción
Propiedad pública CanReduce Obtiene un valor que indica si el nodo del árbol de expresión se puede reducir. (Invalida a Expression.CanReduce).
Propiedad pública Bb360491.PortableClassLibrary(es-es,VS.100).gif IsLifted Obtiene un valor que indica si el nodo del árbol de expresión representa una llamada elevada a un operador.
Propiedad pública Bb360491.PortableClassLibrary(es-es,VS.100).gif IsLiftedToNull Obtiene un valor que indica si el nodo del árbol de expresión representa una llamada elevada a un operador cuyo tipo de valor devuelto se eleva a un tipo que acepta valores null.
Propiedad pública Bb360491.PortableClassLibrary(es-es,VS.100).gif Method Obtiene el método de implementación para la operación unaria.
Propiedad pública NodeType Devuelve el tipo de nodo de este objeto Expression. (Invalida a Expression.NodeType).
Propiedad pública Bb360491.PortableClassLibrary(es-es,VS.100).gif Operand Obtiene el operando de la operación unaria.
Propiedad pública Type Obtiene el tipo estático de la expresión que Expression representa. (Invalida a Expression.Type).
Arriba
Métodos

  Nombre Descripción
Método protegido Accept Envía la expresión al método de visita específico de este tipo de nodo. Por ejemplo, el objeto MethodCallExpression llama al método VisitMethodCall. (Se hereda de Expression).
Método público Bb360491.PortableClassLibrary(es-es,VS.100).gif Equals(Object) Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Bb360491.PortableClassLibrary(es-es,VS.100).gif Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público Bb360491.PortableClassLibrary(es-es,VS.100).gif GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público Bb360491.PortableClassLibrary(es-es,VS.100).gif GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método protegido Bb360491.PortableClassLibrary(es-es,VS.100).gif MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público Reduce Reduce el nodo de expresión a una expresión más sencilla. (Invalida a Expression.Reduce()).
Método público ReduceAndCheck Reduce este nodo a una expresión más simple. Si CanReduce devuelve true, debería devolver una expresión válida. Este método puede devolver otro nodo que se debe reducir a su vez. (Se hereda de Expression).
Método público ReduceExtensions Reduce la expresión a un tipo de nodo conocido (no es un nodo de extensión) o, si ya es un tipo conocido, solo devuelve la expresión. (Se hereda de Expression).
Método público Bb360491.PortableClassLibrary(es-es,VS.100).gif ToString Devuelve una representación textual de Expression. (Se hereda de Expression).
Método público Update Crea una nueva expresión que es como esta, pero usa el elemento secundario proporcionado. Si todos los elementos secundarios son iguales, devolverá esta expresión.
Método protegido VisitChildren Reduce el nodo y, a continuación, llama al delegado del visitante en la expresión reducida. El método inicia una excepción si el nodo no es reducible. (Se hereda de Expression).
Arriba
Comentarios

En la tabla siguiente se resumen los métodos de generador que se pueden utilizar para crear un objeto UnaryExpression que tiene un tipo de nodo concreto.

NodeType

Método de generador

ArrayLength

ArrayLength

Convert

Convert

ConvertChecked

ConvertChecked

Negate

Negate

NegateChecked

NegateChecked

Not

Not

Quote

Quote

TypeAs

TypeAs

UnaryPlus

UnaryPlus

Además, los métodos MakeUnary también se pueden utilizar para crear un objeto UnaryExpression. Estos métodos de generador se pueden utilizar para crear un objeto UnaryExpression de cualquier tipo de nodo que represente una operación unaria. El parámetro de estos métodos que es de tipo NodeType especifica el tipo de nodo deseado.

Ejemplos

En el ejemplo siguiente se crea un objeto UnaryExpression que representa la conversión de referencia de una expresión de de tipo entero que no acepta valores NULL al tipo entero que acepta valores NULL.

Visual Basic

' Create a UnaryExpression that represents a reference
' conversion of an Integer to an Integer? (a nullable Integer).
Dim typeAsExpression As System.Linq.Expressions.UnaryExpression = _
    System.Linq.Expressions.Expression.TypeAs( _
        System.Linq.Expressions.Expression.Constant(34, Type.GetType("System.Int32")), _
        Type.GetType("System.Nullable`1[System.Int32]"))

Console.WriteLine(typeAsExpression.ToString())

' This code produces the following output:
'
' (34 As Nullable`1)


C#

// Create a UnaryExpression that represents a
// conversion of an int to an int?.
System.Linq.Expressions.UnaryExpression typeAsExpression =
    System.Linq.Expressions.Expression.TypeAs(
        System.Linq.Expressions.Expression.Constant(34, typeof(int)),
        typeof(int?));

Console.WriteLine(typeAsExpression.ToString());

// This code produces the following output:
//
// (34 As Nullable`1)


Información de versión

.NET Framework

Compatible con: 4, 3.5

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Compatible con:
Plataformas

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Vea también

Referencia