Sdílet prostřednictvím


Expression.ConvertChecked Metoda

Definice

Vytvoří, UnaryExpression který představuje operaci převodu, která vyvolá výjimku, pokud je cílový typ přetečení.

Přetížení

ConvertChecked(Expression, Type)

Vytvoří, UnaryExpression který představuje operaci převodu, která vyvolá výjimku, pokud je cílový typ přetečení.

ConvertChecked(Expression, Type, MethodInfo)

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

ConvertChecked(Expression, Type)

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

Vytvoří, UnaryExpression který představuje operaci převodu, která vyvolá výjimku, pokud je cílový typ přetečení.

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

Pro Expression nastavení Operand vlastnosti na hodnotu .

type
Type

A Type , aby se Type vlastnost nastavil na hodnotu .

Návraty

A UnaryExpression , který má NodeType vlastnost rovnou ConvertChecked a Operand vlastnosti a Type nastavené na zadané hodnoty.

Výjimky

expression nebo type je null.

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

Poznámky

Vlastnost Method výsledného UnaryExpression objektu je nastavena na implementovací metodu. Vlastnost IsLiftedToNull je false. Pokud je uzel zvednut, IsLifted je true. V opačném případě je falseto .

Implementace metody

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

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

  • V opačném případě:

    • Pokud jsou oba expression. Typ a type představují číselné nebo logické typy nebo typy výčtu s možnou hodnotou null nebo s možnou hodnotou null, implementační metoda je null.

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

Zrušeno vs. nezrušeno

Pokud implementovaná metoda není null:

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

  • Pokud je nebo obojí z . expression Type or type are a nullable value type and the corresponding non-nullable value types are equal to the argument type and the return type of the implementing methodly, the node is lifted.

Pokud je nullimplementovaná metoda :

  • Pokud jsou oba expression. Zadejte a type nemají hodnotu null, uzel se nezruší.

  • V opačném případě je uzel zvednut.

Platí pro

ConvertChecked(Expression, Type, MethodInfo)

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

Vytvoří, UnaryExpression který představuje operaci převodu, která vyvolá výjimku, pokud je cílový typ přetečení a pro který je určena 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

Pro Expression nastavení Operand vlastnosti na hodnotu .

type
Type

A Type , aby se Type vlastnost nastavil na hodnotu .

method
MethodInfo

A MethodInfo , aby se Method vlastnost nastavil na hodnotu .

Návraty

Vlastnost , UnaryExpression která má NodeType vlastnost , TypeConvertCheckedOperanda Method nastavené na zadané hodnoty.

Výjimky

expression nebo type je null.

method není null a metoda, která představuje, vrátí void, není static (Shared v jazyce Visual Basic) nebo nepřebírají přesně jeden argument.

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

-nebo-

expression. Typ není možné přiřadit k typu argumentu metody reprezentované parametrem method.

-nebo-

Návratový typ metody reprezentované parametrem method není možné přiřadit k type.

-nebo-

expression. Typ nebo type je typ hodnoty s možnou hodnotou null a odpovídající typ hodnoty, který nelze použít hodnotu null, se nerovná typu argumentu nebo návratového typu metody reprezentované parametrem method.

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

Poznámky

Vlastnost Method výsledného UnaryExpression objektu je nastavena na implementovací metodu. Vlastnost IsLiftedToNull je false. Pokud je uzel zvednut, IsLifted je true. V opačném případě je falseto .

Implementace metody

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

  • Pokud není metoda null, jedná se o implementizační metodu. Musí představovat metodu non-void ( staticShared v jazyce Visual Basic), která přijímá jeden argument.

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

  • V opačném případě:

    • Pokud jsou oba expression. Typ a type představují číselné nebo logické typy nebo typy výčtu s možnou hodnotou null nebo s možnou hodnotou null, implementační metoda je null.

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

Zrušeno vs. nezrušeno

Pokud implementovaná metoda není null:

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

  • Pokud je nebo obojí z . expression Type or type are a nullable value type and the corresponding non-nullable value types are equal to the argument type and the return type of the implementing methodly, the node is lifted.

Pokud je nullimplementovaná metoda :

  • Pokud jsou oba expression. Zadejte a type nemají hodnotu null, uzel se nezruší.

  • V opačném případě je uzel zvednut.

Platí pro