Поделиться через


UnaryExpression Класс

Определение

Представляет выражение, имеющее унарный оператор.

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

Примеры

В следующем примере создается UnaryExpression объект , представляющий преобразование ссылки целочисленного выражения, не допускающего значение NULL, в целочисленный тип, допускающий значение NULL.

// 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)
' 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)

Комментарии

В следующей таблице перечислены фабричные методы, которые можно использовать для создания UnaryExpression объекта с определенным типом узла.

NodeType Фабричные методы
ArrayLength ArrayLength
Convert Convert
ConvertChecked ConvertChecked
Negate Negate
NegateChecked NegateChecked
Not Not
Quote Quote
TypeAs TypeAs
UnaryPlus UnaryPlus

Кроме того, MakeUnary методы также можно использовать для создания UnaryExpression. Эти фабричные методы можно использовать для создания UnaryExpression узла любого типа, представляющего унарную операцию. Параметр этих методов, который имеет тип NodeType , указывает требуемый тип узла.

Свойства

CanReduce

Возвращает значение, указывающее, можно ли сократить узел дерева выражений.

CanReduce

Указывает, что узел можно сократить до более простого. Если возвращается значение true, для получения сокращенной формы можно вызвать Reduce().

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

Возвращает значение, указывающее, представляет ли узел дерева выражения ликвидированный вызов оператора.

IsLiftedToNull

Возвращает значение, указывающее, представляет ли узел дерева выражения ликвидированный вызов оператора, тип возврата которого удален для типа со значением NULL.

Method

Получает реализацию метода для унарной операции.

NodeType

Возвращает тип узла данного Expression.

NodeType

Получает тип узла данного объекта Expression.

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

Получает операнд унарной операции.

Type

Получает статичный тип выражения, представленного этим выражением Expression.

Type

Получает статичный тип выражения, представленного этим выражением Expression.

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

Методы

Accept(ExpressionVisitor)

Отправляет в конкретный метод Visit для данного типа узла. Например, объект MethodCallExpression вызывает метод VisitMethodCall(MethodCallExpression).

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

Определяет, равен ли указанный объект текущему объекту.

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

Служит хэш-функцией по умолчанию.

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

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

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

Создает неполную копию текущего объекта Object.

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

Сокращает узел выражений до более простого выражения.

Reduce()

Преобразует данный узел в более простое выражение. Если CanReduce возвращает значение true, данный метод должен вернуть допустимое выражение. Данный метод может вернуть другой узел, который нужно будет преобразовать еще раз.

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

Преобразует данный узел в более простое выражение. Если CanReduce возвращает значение true, данный метод должен вернуть допустимое выражение. Данный метод может вернуть другой узел, который нужно будет преобразовать еще раз.

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

Упрощает выражение до известного типа узла (не являющегося узлом Extension) или возвращает выражение, если оно имеет известный тип.

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

Возвращает текстовое представление текущего объекта Expression.

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

Создает новое выражение, аналогичное данному, но с использованием предоставленного дочернего элемента. Если все дочерние элементы совпадают, возвращается данное выражение.

VisitChildren(ExpressionVisitor)

Упрощает узел и вызывает делегат-посетитель для преобразованного выражения. Данный метод создает исключение, если узел невозможно упростить.

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

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