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


Expression.ConvertChecked Метод

Определение

Создает UnaryExpression, представляющее операцию преобразования, создающую исключение, если целевой тип переполнен.

Перегрузки

ConvertChecked(Expression, Type)

Создает UnaryExpression, представляющее операцию преобразования, создающую исключение, если целевой тип переполнен.

ConvertChecked(Expression, Type, MethodInfo)

Создает UnaryExpression, представляющее операцию преобразования, создающую исключение, если целевой тип переполнен, и для которой указан метод реализации.

ConvertChecked(Expression, Type)

Исходный код:
UnaryExpression.cs
Исходный код:
UnaryExpression.cs
Исходный код:
UnaryExpression.cs

Создает UnaryExpression, представляющее операцию преобразования, создающую исключение, если целевой тип переполнен.

public:
 static System::Linq::Expressions::UnaryExpression ^ ConvertChecked(System::Linq::Expressions::Expression ^ expression, Type ^ type);
public static System.Linq.Expressions.UnaryExpression ConvertChecked (System.Linq.Expressions.Expression expression, Type type);
static member ConvertChecked : System.Linq.Expressions.Expression * Type -> System.Linq.Expressions.UnaryExpression
Public Shared Function ConvertChecked (expression As Expression, type As Type) As UnaryExpression

Параметры

expression
Expression

Объект Expression, который следует задать в качестве значения свойства Operand.

type
Type

Объект Type, который следует задать в качестве значения свойства Type.

Возвращаемое значение

Выражение UnaryExpression со свойствомNodeType, равным ConvertChecked, и свойствами Operand и Type, для которых заданы указанные значения.

Исключения

Параметр expression или type имеет значение null.

Оператор преобразования не определен для типов expression.Type и type.Type.

Комментарии

Свойству Method результирующего UnaryExpression объекта присваивается реализующий метод. Значение свойства IsLiftedToNullfalse. Если узел приподнят, IsLifted имеет значение true. В противном случае значение равно false.

Метод реализации

Следующие правила определяют метод реализации операции:

  • Если один из вариантов expression. Тип или type — это определяемый пользователем тип, определяющий оператор неявного или явного MethodInfo преобразования. Объект , представляющий этот оператор, является реализующим методом.

  • В противном случае:

    • При обоих значениях expression. Тип и type представление числовых или логических типов, а также типов перечисления, допускающих значение NULL или не допускающих значение NULL, реализующим методом является null.

    • Если один из вариантов expression. Тип или type является ссылочным типом, и существует явное упаковывание, распаковка или преобразование ссылок из expression. Введите в type, реализующим методом является null.

Отменено и не снято

Если реализующим методом не nullявляется :

  • Если expression. Тип можно назначить типу аргумента реализующего метода, а тип возвращаемого значения реализующего метода можно typeназначить , узел не поднимается.

  • Если один или оба из . expression Тип или type являются типом значения, допускающим значение NULL, и соответствующие типы значений, не допускающие значение NULL, равны типу аргумента и типу возвращаемого значения реализующего метода соответственно, узел поднимается.

Если реализующим методом является null:

  • При обоих значениях expression. Тип и type не допускает значения NULL, узел не поднимается.

  • В противном случае узел будет поднят.

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

ConvertChecked(Expression, Type, MethodInfo)

Исходный код:
UnaryExpression.cs
Исходный код:
UnaryExpression.cs
Исходный код:
UnaryExpression.cs

Создает UnaryExpression, представляющее операцию преобразования, создающую исключение, если целевой тип переполнен, и для которой указан метод реализации.

public:
 static System::Linq::Expressions::UnaryExpression ^ ConvertChecked(System::Linq::Expressions::Expression ^ expression, Type ^ type, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.UnaryExpression ConvertChecked (System.Linq.Expressions.Expression expression, Type type, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.UnaryExpression ConvertChecked (System.Linq.Expressions.Expression expression, Type type, System.Reflection.MethodInfo? method);
static member ConvertChecked : System.Linq.Expressions.Expression * Type * System.Reflection.MethodInfo -> System.Linq.Expressions.UnaryExpression
Public Shared Function ConvertChecked (expression As Expression, type As Type, method As MethodInfo) As UnaryExpression

Параметры

expression
Expression

Объект Expression, который следует задать в качестве значения свойства Operand.

type
Type

Объект Type, который следует задать в качестве значения свойства Type.

method
MethodInfo

Объект MethodInfo, который следует задать в качестве значения свойства Method.

Возвращаемое значение

Выражение UnaryExpression со свойством NodeType, равным ConvertChecked, и свойствами Operand, Type и Method, для которых заданы указанные значения.

Исключения

Параметр expression или type имеет значение null.

Значение параметра method не равно null, и метод, который представляется этим параметром, возвращает значение void, не является static (Shared в Visual Basic) и не принимает ровно один аргумент.

Оператор преобразования не определен для типов expression.Type и type.Type.

-или-

Параметр expression.Type не назначается типу аргумента метода, представленному параметром method.

-или-

Тип возврата метода, представленный method, не назначается для type.

-или-

Тип expression.Type или type поддерживает тип значения, а соответствующий тип, не поддерживающий значение null, не равен типу аргумента и типу возврата, соответственно метода, представленного method.

Найдено более одного метода, соответствующего описанию method.

Комментарии

Свойству Method результирующего UnaryExpression объекта присваивается реализующий метод. Значение свойства IsLiftedToNullfalse. Если узел приподнят, IsLifted имеет значение true. В противном случае значение равно false.

Метод реализации

Следующие правила определяют метод реализации операции:

  • Если метод не nullимеет значение , он является реализующим методом. Он должен представлять метод non-void ( staticShared в Visual Basic), который принимает один аргумент.

  • В противном случае , если либо expression. Тип или type — это определяемый пользователем тип, определяющий оператор неявного или явного MethodInfo преобразования. Объект , представляющий этот оператор, является реализующим методом.

  • В противном случае:

    • При обоих значениях expression. Тип и type представление числовых или логических типов, а также типов перечисления, допускающих значение NULL или не допускающих значение NULL, реализующим методом является null.

    • Если один из вариантов expression. Тип или type является ссылочным типом, и существует явное упаковывание, распаковка или преобразование ссылок из expression. Введите в type, реализующим методом является null.

Отменено и не снято

Если реализующим методом не nullявляется :

  • Если expression. Тип можно назначить типу аргумента реализующего метода, а тип возвращаемого значения реализующего метода можно typeназначить , узел не поднимается.

  • Если один или оба из . expression Тип или type являются типом значения, допускающим значение NULL, и соответствующие типы значений, не допускающие значение NULL, равны типу аргумента и типу возвращаемого значения реализующего метода соответственно, узел поднимается.

Если реализующим методом является null:

  • При обоих значениях expression. Тип и type не допускает значения NULL, узел не поднимается.

  • В противном случае узел будет поднят.

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