Freigeben über


Expression.ConvertChecked Methode

Definition

Erstellt eine UnaryExpression, die eine Konvertierungsoperation darstellt, die eine Ausnahme auslöst, wenn ein Überlauf im Zieltyp auftritt.

Überlädt

ConvertChecked(Expression, Type)

Erstellt eine UnaryExpression, die eine Konvertierungsoperation darstellt, die eine Ausnahme auslöst, wenn ein Überlauf im Zieltyp auftritt.

ConvertChecked(Expression, Type, MethodInfo)

Erstellt eine UnaryExpression, die eine Konvertierungsoperation darstellt, für die die implementierende Methode angegeben ist und die eine Ausnahme auslöst, wenn ein Überlauf im Zieltyp auftritt.

ConvertChecked(Expression, Type)

Quelle:
UnaryExpression.cs
Quelle:
UnaryExpression.cs
Quelle:
UnaryExpression.cs

Erstellt eine UnaryExpression, die eine Konvertierungsoperation darstellt, die eine Ausnahme auslöst, wenn ein Überlauf im Zieltyp auftritt.

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

Parameter

expression
Expression

Ein Expression, auf den die Operand-Eigenschaft festgelegt werden soll.

type
Type

Ein Type, auf das die Type-Eigenschaft festgelegt werden soll.

Gibt zurück

Ein UnaryExpression, bei dem die NodeType-Eigenschaft gleich ConvertChecked ist und die Operand-Eigenschaft sowie die Type-Eigenschaft auf die angegebenen Werte festgelegt sind.

Ausnahmen

expression oder type ist null.

Zwischen expression.Type und type ist kein Konvertierungsoperator definiert.

Hinweise

Die Method -Eigenschaft der resultierenden UnaryExpression ist auf die implementierende Methode festgelegt. Die IsLiftedToNull-Eigenschaft ist false. Wenn der Knoten angehoben wird, IsLifted ist true. Andernfalls lautet der Wert false.

Implementieren der Methode

Die folgenden Regeln bestimmen die Implementierungsmethode für den Vorgang:

  • Wenn einer der beiden expressionist. Typ oder type ist ein benutzerdefinierter Typ, der einen impliziten oder expliziten Konvertierungsoperator definiert, der MethodInfo diesen Operator darstellt, der die implementierende Methode darstellt.

  • Andernfalls:

    • Wenn beide expression. Geben Sie numerische oder boolesche Typen oder nullable oder nicht nullable Enumerationstypen an, und type stellen Sie sie dar. Die implementierende Methode ist null.

    • Wenn einer der beiden expressionist. Typ oder type ist ein Verweistyp, und eine explizite Box-, Unboxing- oder Verweiskonvertierung ist aus expressionvorhanden. Geben Sie in ein type, die implementierende Methode ist null.

Lifted versus Non-Lifted

Wenn die implementierenden Methode nicht nulllautet:

  • Wenn expression. Typ kann dem Argumenttyp der implementierenden Methode zugewiesen werden, und der Rückgabetyp der implementierenden Methode kann zugewiesen typewerden, der Knoten wird nicht aufgehoben.

  • Wenn entweder oder beide von expression. Typ oder type sind ein NULLable-Werttyp, und die entsprechenden Nicht-NULLable-Werttypen sind gleich dem Argumenttyp und dem Rückgabetyp der implementierenden Methode. Der Knoten wird aufgehoben.

Wenn die implementierenden Methode lautet null:

  • Wenn beide expression. Geben Sie ein und type sind nicht NULLable, der Knoten wird nicht aufgehoben.

  • Andernfalls wird der Knoten aufgehoben.

Gilt für:

ConvertChecked(Expression, Type, MethodInfo)

Quelle:
UnaryExpression.cs
Quelle:
UnaryExpression.cs
Quelle:
UnaryExpression.cs

Erstellt eine UnaryExpression, die eine Konvertierungsoperation darstellt, für die die implementierende Methode angegeben ist und die eine Ausnahme auslöst, wenn ein Überlauf im Zieltyp auftritt.

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

Parameter

expression
Expression

Ein Expression, auf den die Operand-Eigenschaft festgelegt werden soll.

type
Type

Ein Type, auf das die Type-Eigenschaft festgelegt werden soll.

method
MethodInfo

Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.

Gibt zurück

Ein UnaryExpression, bei dem die NodeType-Eigenschaft gleich ConvertChecked ist und die Eigenschaften Operand, Type und Method auf die angegebenen Werte festgelegt sind.

Ausnahmen

expression oder type ist null.

method ist nicht null, und die dadurch dargestellte Methode gibt void zurück, ist nicht static (Shared in Visual Basic) oder akzeptiert nicht genau ein Argument.

Zwischen expression.Type und type ist kein Konvertierungsoperator definiert.

- oder -

expression.Type kann dem Argumenttyp der durch method dargestellten Methode nicht zugeordnet werden.

- oder -

Der Rückgabetyp der Methode, die durch method dargestellt wird, kann type nicht zugeordnet werden.

- oder -

expression.Type oder type ist ein Werttyp, der NULL-Werte zulässt, und der entsprechende Werttyp, der keine NULL-Werte zulässt, entspricht nicht dem Argumenttyp bzw. dem Rückgabetyp der durch method dargestellten Methode.

Es wurde mehr als eine Methode gefunden, die mit der method-Beschreibung übereinstimmt.

Hinweise

Die Method -Eigenschaft der resultierenden UnaryExpression ist auf die implementierende Methode festgelegt. Die IsLiftedToNull-Eigenschaft ist false. Wenn der Knoten angehoben wird, IsLifted ist true. Andernfalls lautet der Wert false.

Implementieren der Methode

Die folgenden Regeln bestimmen die Implementierungsmethode für den Vorgang:

  • Wenn die Methode nicht nullist, handelt es sich um die implementierenden Methode. Sie muss eine nicht leere Methode (Sharedin Visual Basic) darstellen, static die ein Argument akzeptiert.

  • Andernfalls, wenn entweder expression. Typ oder type ist ein benutzerdefinierter Typ, der einen impliziten oder expliziten Konvertierungsoperator definiert, der MethodInfo diesen Operator darstellt, der die implementierende Methode darstellt.

  • Andernfalls:

    • Wenn beide expression. Geben Sie numerische oder boolesche Typen oder nullable oder nicht nullable Enumerationstypen an, und type stellen Sie sie dar. Die implementierende Methode ist null.

    • Wenn einer der beiden expressionist. Typ oder type ist ein Verweistyp, und eine explizite Box-, Unboxing- oder Verweiskonvertierung ist aus expressionvorhanden. Geben Sie in ein type, die implementierende Methode ist null.

Lifted versus Non-Lifted

Wenn die implementierenden Methode nicht nulllautet:

  • Wenn expression. Typ kann dem Argumenttyp der implementierenden Methode zugewiesen werden, und der Rückgabetyp der implementierenden Methode kann zugewiesen typewerden, der Knoten wird nicht aufgehoben.

  • Wenn entweder oder beide von expression. Typ oder type sind ein NULLable-Werttyp, und die entsprechenden Nicht-NULLable-Werttypen sind gleich dem Argumenttyp und dem Rückgabetyp der implementierenden Methode. Der Knoten wird aufgehoben.

Wenn die implementierenden Methode lautet null:

  • Wenn beide expression. Geben Sie ein und type sind nicht NULLable, der Knoten wird nicht aufgehoben.

  • Andernfalls wird der Knoten aufgehoben.

Gilt für: