Condividi tramite


Expression.ConvertChecked Metodo

Definizione

Crea un oggetto UnaryExpression che rappresenta un'operazione di conversione che genera un'eccezione in caso di overflow del tipo di destinazione.

Overload

ConvertChecked(Expression, Type)

Crea un oggetto UnaryExpression che rappresenta un'operazione di conversione che genera un'eccezione in caso di overflow del tipo di destinazione.

ConvertChecked(Expression, Type, MethodInfo)

Crea un oggetto UnaryExpression che rappresenta un'operazione di conversione che genera un'eccezione in caso di overflow del tipo di destinazione e per la quale è specificato il metodo di implementazione.

ConvertChecked(Expression, Type)

Origine:
UnaryExpression.cs
Origine:
UnaryExpression.cs
Origine:
UnaryExpression.cs

Crea un oggetto UnaryExpression che rappresenta un'operazione di conversione che genera un'eccezione in caso di overflow del tipo di destinazione.

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

Parametri

expression
Expression

Oggetto Expression su cui impostare la proprietà Operand.

type
Type

Oggetto Type su cui impostare la proprietà Type.

Restituisce

Oggetto UnaryExpression la cui proprietà NodeType è uguale a ConvertChecked e le cui proprietà Operand e Type sono impostate sui valori specificati.

Eccezioni

expression o type è null.

Nessun operatore di conversione è definito tra expression.Type e type.

Commenti

La Method proprietà dell'oggetto risultante UnaryExpression viene impostata sul metodo di implementazione. La proprietà IsLiftedToNull è false. Se il nodo viene sollevato, IsLifted è true. In caso contrario, è false.

Metodo di implementazione

Le regole seguenti determinano il metodo di implementazione per l'operazione:

  • Se uno dei due . expression Tipo o type è un tipo definito dall'utente che definisce un operatore di conversione implicito o esplicito, MethodInfo che rappresenta tale operatore è il metodo di implementazione.

  • In caso contrario:

    • Se entrambi expression. Digitare e type rappresentare tipi numerici o booleani oppure tipi di enumerazione nullable o non nullable, il metodo di implementazione è null.

    • Se uno dei due . expression Il tipo o type è un tipo riferimento e una conversione boxing, unboxing o riferimento esplicita esiste da expression. Digitare in , il metodo di implementazione typeè null.

Lifted e non lifted

Se il metodo di implementazione non nullè :

  • Se expression. Il tipo è assegnabile al tipo di argomento del metodo di implementazione e il tipo restituito del metodo di implementazione è assegnabile a type, il nodo non viene sollevato.

  • Se uno o entrambi i tipi di expression. Tipo o type sono un tipo valore nullable e i tipi valore non nullable corrispondenti sono uguali al tipo di argomento e al tipo restituito del metodo di implementazione, il nodo viene sollevato.

Se il metodo di implementazione è null:

  • Se entrambi expression. Tipo e type non nullable, il nodo non viene sollevato.

  • In caso contrario, il nodo viene sollevato.

Si applica a

ConvertChecked(Expression, Type, MethodInfo)

Origine:
UnaryExpression.cs
Origine:
UnaryExpression.cs
Origine:
UnaryExpression.cs

Crea un oggetto UnaryExpression che rappresenta un'operazione di conversione che genera un'eccezione in caso di overflow del tipo di destinazione e per la quale è specificato il metodo di implementazione.

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

Parametri

expression
Expression

Oggetto Expression su cui impostare la proprietà Operand.

type
Type

Oggetto Type su cui impostare la proprietà Type.

method
MethodInfo

Oggetto MethodInfo su cui impostare la proprietà Method.

Restituisce

Oggetto UnaryExpression la cui proprietà NodeType è uguale a ConvertChecked e le cui proprietà Operand, Type e Method sono impostate sui valori specificati.

Eccezioni

expression o type è null.

method non è null e il metodo che rappresenta restituisce void, non è static (Shared in Visual Basic) o non accetta esattamente un argomento.

Nessun operatore di conversione è definito tra expression.Type e type.

-oppure-

expression.Type non è assegnabile al tipo di argomento del metodo rappresentato da method.

-oppure-

Il tipo restituito del metodo rappresentato da method non è assegnabile a type.

-oppure-

expression.Type o type è un tipo valore nullable e il tipo valore non nullable corrispondente è diverso dal tipo di argomento o dal tipo restituito, rispettivamente, del metodo rappresentato da method.

È stato trovato più di un metodo che corrisponde alla descrizione di method.

Commenti

La Method proprietà dell'oggetto risultante UnaryExpression viene impostata sul metodo di implementazione. La proprietà IsLiftedToNull è false. Se il nodo viene sollevato, IsLifted è true. In caso contrario, è false.

Metodo di implementazione

Le regole seguenti determinano il metodo di implementazione per l'operazione:

  • Se il metodo non nullè , è il metodo di implementazione. Deve rappresentare un metodo non void, static (Shared in Visual Basic) che accetta un argomento.

  • In caso contrario, se uno dei due . expression Tipo o type è un tipo definito dall'utente che definisce un operatore di conversione implicito o esplicito, MethodInfo che rappresenta tale operatore è il metodo di implementazione.

  • In caso contrario:

    • Se entrambi expression. Digitare e type rappresentare tipi numerici o booleani oppure tipi di enumerazione nullable o non nullable, il metodo di implementazione è null.

    • Se uno dei due . expression Il tipo o type è un tipo riferimento e una conversione boxing, unboxing o riferimento esplicita esiste da expression. Digitare in , il metodo di implementazione typeè null.

Lifted e non lifted

Se il metodo di implementazione non nullè :

  • Se expression. Il tipo è assegnabile al tipo di argomento del metodo di implementazione e il tipo restituito del metodo di implementazione è assegnabile a type, il nodo non viene sollevato.

  • Se uno o entrambi i tipi di expression. Tipo o type sono un tipo valore nullable e i tipi valore non nullable corrispondenti sono uguali al tipo di argomento e al tipo restituito del metodo di implementazione, il nodo viene sollevato.

Se il metodo di implementazione è null:

  • Se entrambi expression. Tipo e type non nullable, il nodo non viene sollevato.

  • In caso contrario, il nodo viene sollevato.

Si applica a