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.
Возвращаемое значение
Выражение UnaryExpression со свойствомNodeType, равным ConvertChecked, и свойствами Operand и Type, для которых заданы указанные значения.
Исключения
Параметр expression
или type
имеет значение null
.
Оператор преобразования не определен для типов expression
.Type и type
.Type.
Комментарии
Свойству Method результирующего UnaryExpression объекта присваивается реализующий метод. Значение свойства IsLiftedToNull — false
. Если узел приподнят, 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.
- 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 объекта присваивается реализующий метод. Значение свойства IsLiftedToNull — false
. Если узел приподнят, IsLifted имеет значение true
. В противном случае значение равно false
.
Метод реализации
Следующие правила определяют метод реализации операции:
Если метод не
null
имеет значение , он является реализующим методом. Он должен представлять метод non-void (static
Shared
в 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, узел не поднимается.В противном случае узел будет поднят.