Sdílet prostřednictvím


Expression.ConvertChecked Metoda

Definice

Vytvoří UnaryExpression operaci převodu, která vyvolá výjimku v případě přetečení cílového typu.

Přetížení

Name Description
ConvertChecked(Expression, Type)

Vytvoří UnaryExpression operaci převodu, která vyvolá výjimku v případě přetečení cílového typu.

ConvertChecked(Expression, Type, MethodInfo)

Vytvoří UnaryExpression operaci převodu, která vyvolá výjimku, pokud je cílový typ přetečení a pro který je zadaná implementovaná metoda.

ConvertChecked(Expression, Type)

Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs

Vytvoří UnaryExpression operaci převodu, která vyvolá výjimku v případě přetečení cílového typu.

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

Parametry

expression
Expression

Operand Nastavení Expression vlastnosti rovno.

type
Type

A Type nastavit Type vlastnost rovná se.

Návraty

AUnaryExpression, který má vlastnost rovna ConvertCheckedNodeType a Operand a Type vlastnosti nastaveny na zadané hodnoty.

Výjimky

expression nebo type je null.

Mezi operátorem expressionpřevodu není definován žádný operátor převodu . Zadejte a type.

Poznámky

Vlastnost Method výsledné UnaryExpression je nastavena na implementovací metodu. Vlastnost IsLiftedToNull je false. Pokud je uzel zvednut, IsLifted je true. Jinak je falseto .

Implementace metody

Následující pravidla určují metodu implementace operace:

  • Pokud je to některý z těchto expression. Typ nebo type je uživatelem definovaný typ, který definuje implicitní nebo explicitní převodní operátor, MethodInfo který představuje, že operátor je implementovaná metoda.

  • Jinak:

    • Pokud jsou oba expression. Typ a type reprezentovat číselné nebo logické typy, nebo nullable nebo non-nullable výčtové typy, implementační metoda je null.

    • Pokud je to některý z těchto expression. Typ nebo type je typ odkazu a explicitní boxing, rozbalení nebo převod odkazu existuje z expression. Typ do type, implementovaná metoda je null.

Lifted versus Non-Lifted

Pokud implementovaná metoda není null:

  • Pokud expression. Typ je možné přiřadit k typu argumentu implementované metody a návratový typ implementované metody je možné typepřiřadit , uzel není zvednut.

  • Je-li jeden nebo oba z expression. Typ nebo type jsou typ hodnoty nullable a odpovídající typy hodnot, které nejsou nullable jsou rovny typu argumentu a návratový typ implementované metody, uzel je zvednut.

Pokud implementovaná metoda je null:

  • Pokud jsou oba expression. Typ a type nejsou nullable, uzel se nezruší.

  • Jinak se uzel zvedne.

Platí pro

ConvertChecked(Expression, Type, MethodInfo)

Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs
Zdroj:
UnaryExpression.cs

Vytvoří UnaryExpression operaci převodu, která vyvolá výjimku, pokud je cílový typ přetečení a pro který je zadaná implementovaná metoda.

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

Parametry

expression
Expression

Operand Nastavení Expression vlastnosti rovno.

type
Type

A Type nastavit Type vlastnost rovná se.

method
MethodInfo

A MethodInfo nastavit Method vlastnost rovná se.

Návraty

AUnaryExpression, který má vlastnost rovna ConvertCheckedNodeTypeOperanda , Typea Method vlastnosti nastaveny na zadané hodnoty.

Výjimky

expression nebo type je null.

method není null a metoda, která představuje vrací void, není static (Shared v jazyce Visual Basic) nebo nebere přesně jeden argument.

Mezi operátorem expressionpřevodu není definován žádný operátor převodu . Zadejte a type.

nebo

expression. Typ nelze přiřadit k typu argumentu metody reprezentované method.

nebo

Návratový typ metody reprezentované method není možné typepřiřadit .

nebo

expression. Typ nebo type je typ hodnoty s možnou hodnotou null a odpovídající typ nenulové hodnoty se nerovná typu argumentu nebo návratového typu metody reprezentované metodou method.

Byla nalezena více než jedna metoda, která odpovídá method popisu.

Poznámky

Vlastnost Method výsledné UnaryExpression je nastavena na implementovací metodu. Vlastnost IsLiftedToNull je false. Pokud je uzel zvednut, IsLifted je true. Jinak je falseto .

Implementace metody

Následující pravidla určují metodu implementace operace:

  • Pokud metoda není null, je to implementovaná metoda. Musí představovat jinou metodu než void ( staticShared v jazyce Visual Basic), která přebírá jeden argument.

  • V opačném případě, pokud některý z těchto expression. Typ nebo type je uživatelem definovaný typ, který definuje implicitní nebo explicitní převodní operátor, MethodInfo který představuje, že operátor je implementovaná metoda.

  • Jinak:

    • Pokud jsou oba expression. Typ a type reprezentovat číselné nebo logické typy, nebo nullable nebo non-nullable výčtové typy, implementační metoda je null.

    • Pokud je to některý z těchto expression. Typ nebo type je typ odkazu a explicitní boxing, rozbalení nebo převod odkazu existuje z expression. Typ do type, implementovaná metoda je null.

Lifted versus Non-Lifted

Pokud implementovaná metoda není null:

  • Pokud expression. Typ je možné přiřadit k typu argumentu implementované metody a návratový typ implementované metody je možné typepřiřadit , uzel není zvednut.

  • Je-li jeden nebo oba z expression. Typ nebo type jsou typ hodnoty nullable a odpovídající typy hodnot, které nejsou nullable jsou rovny typu argumentu a návratový typ implementované metody, uzel je zvednut.

Pokud implementovaná metoda je null:

  • Pokud jsou oba expression. Typ a type nejsou nullable, uzel se nezruší.

  • Jinak se uzel zvedne.

Platí pro