Expression.Convert Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy obiekt UnaryExpression reprezentujący operację konwersji typu.
Przeciążenia
Convert(Expression, Type) |
Tworzy obiekt UnaryExpression reprezentujący operację konwersji typu. |
Convert(Expression, Type, MethodInfo) |
Tworzy obiekt UnaryExpression reprezentujący operację konwersji, dla której określono metodę implementującą. |
Convert(Expression, Type)
- Źródło:
- UnaryExpression.cs
- Źródło:
- UnaryExpression.cs
- Źródło:
- UnaryExpression.cs
Tworzy obiekt UnaryExpression reprezentujący operację konwersji typu.
public:
static System::Linq::Expressions::UnaryExpression ^ Convert(System::Linq::Expressions::Expression ^ expression, Type ^ type);
public static System.Linq.Expressions.UnaryExpression Convert (System.Linq.Expressions.Expression expression, Type type);
static member Convert : System.Linq.Expressions.Expression * Type -> System.Linq.Expressions.UnaryExpression
Public Shared Function Convert (expression As Expression, type As Type) As UnaryExpression
Parametry
- expression
- Expression
Element , Expression aby ustawić właściwość równą Operand .
Zwraca
WłaściwośćUnaryExpression, która ma właściwość równą ConvertNodeType właściwości i i TypeOperand ustawioną na określone wartości.
Wyjątki
expression
lub type
to null
.
Nie zdefiniowano operatora konwersji między elementami expression
. Wpisz i type
.
Przykłady
W poniższym przykładzie kodu pokazano, jak utworzyć wyrażenie reprezentujące operację konwersji typu.
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression represents a type conversion operation.
Expression convertExpr = Expression.Convert(
Expression.Constant(5.5),
typeof(Int16)
);
// Print out the expression.
Console.WriteLine(convertExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<Int16>>(convertExpr).Compile()());
// This code example produces the following output:
//
// Convert(5.5)
// 5
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression represents a type conversion operation.
Dim convertExpr As Expression = Expression.Convert(
Expression.Constant(5.5),
GetType(Int16)
)
' Print the expression.
Console.WriteLine(convertExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of Int16))(convertExpr).Compile()())
' This code example produces the following output:
'
' Convert(5.5)
' 5
Uwagi
Właściwość Method wynikowej UnaryExpression jest ustawiona na metodę implementowania. Właściwość IsLiftedToNull to false
. Jeśli węzeł zostanie zniesiony, IsLifted to .true
W przeciwnym razie jest false
to .
Metoda implementująca
Następujące reguły określają metodę implementowania operacji:
Jeśli albo
expression
. Typ lubtype
jest typem zdefiniowanym przez użytkownika, który definiuje niejawny lub jawny operator konwersji, MethodInfo który reprezentuje ten operator jest metodą implementowania.W przeciwnym razie:
Jeśli oba
expression
. Wpisz itype
reprezentuje typy liczbowe lub logiczne albo typy wyliczalne o wartości null lub niezwiązane z wartością null, metoda implementowania tonull
.Jeśli albo
expression
. Typ lubtype
jest typem referencyjnym, a jawne boxing, rozpakowywanie lub konwersja odwołania istnieje zexpression
klasy . Wpisz wartośćtype
, metoda implementowania tonull
.
Podniesione i niepodniesione
Jeśli metoda implementowania nie null
jest :
Jeśli
expression
. Typ jest przypisywany do typu argumentu metody implementowania, a zwracany typ metody implementowania można przypisać dotype
elementu , węzeł nie zostanie zniesiony.Jeśli jeden lub oba z nich
expression
. Typ lubtype
jest typem wartości dopuszczanej do wartości null, a odpowiadające im typy wartości nienależących do wartości są równe typowi argumentu, a zwracany typ metody implementowania, węzeł zostanie zniesiony.
Jeśli metoda implementowania to null
:
Jeśli oba
expression
. Wpisz itype
nie ma wartości null, węzeł nie zostanie zniesiony.W przeciwnym razie węzeł zostanie zniesiony.
Dotyczy
Convert(Expression, Type, MethodInfo)
- Źródło:
- UnaryExpression.cs
- Źródło:
- UnaryExpression.cs
- Źródło:
- UnaryExpression.cs
Tworzy obiekt UnaryExpression reprezentujący operację konwersji, dla której określono metodę implementującą.
public:
static System::Linq::Expressions::UnaryExpression ^ Convert(System::Linq::Expressions::Expression ^ expression, Type ^ type, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.UnaryExpression Convert (System.Linq.Expressions.Expression expression, Type type, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.UnaryExpression Convert (System.Linq.Expressions.Expression expression, Type type, System.Reflection.MethodInfo? method);
static member Convert : System.Linq.Expressions.Expression * Type * System.Reflection.MethodInfo -> System.Linq.Expressions.UnaryExpression
Public Shared Function Convert (expression As Expression, type As Type, method As MethodInfo) As UnaryExpression
Parametry
- expression
- Expression
Element , Expression aby ustawić właściwość równą Operand .
- method
- MethodInfo
A MethodInfo , aby ustawić właściwość równą Method .
Zwraca
WłaściwośćUnaryExpression, która ma właściwość równą ConvertNodeType wartościom , i OperandType, i Method ustawioną na określone wartości.
Wyjątki
expression
lub type
to null
.
method
nie null
jest i metoda, która reprezentuje zwraca void
wartość , nie static
jest (Shared
w Visual Basic) lub nie bierze dokładnie jednego argumentu.
Nie zdefiniowano operatora konwersji między elementami expression
. Wpisz i type
.
-lub-
expression
. Typ nie można przypisać do typu argumentu metody reprezentowanej przez .method
-lub-
Zwracany typ metody reprezentowanej przez method
program nie można przypisać do type
elementu .
-lub-
expression
. Typ lub type
jest typem wartości dopuszczalnej wartości null, a odpowiadający mu typ wartości bez wartości null nie jest równy typowi argumentu ani typowi zwracanemu, odpowiednio, metody reprezentowanej przez method
metodę .
Znaleziono więcej niż jedną metodę zgodną z opisem method
.
Uwagi
Właściwość Method wynikowej UnaryExpression jest ustawiona na metodę implementowania. Właściwość IsLiftedToNull to false
. Jeśli węzeł zostanie zniesiony, IsLifted to .true
W przeciwnym razie jest false
to .
Metoda implementująca
Następujące reguły określają metodę implementowania operacji:
Jeśli metoda nie
null
jest , jest to metoda implementowania. Musi reprezentować metodę niepustą (static
Shared
w Visual Basic), która przyjmuje jeden argument.W przeciwnym razie, jeśli albo
expression
. Typ lubtype
jest typem zdefiniowanym przez użytkownika, który definiuje niejawny lub jawny operator konwersji, MethodInfo który reprezentuje ten operator jest metodą implementowania.W przeciwnym razie:
Jeśli oba
expression
. Wpisz itype
reprezentuje typy liczbowe lub logiczne albo typy wyliczalne o wartości null lub niezwiązane z wartością null, metoda implementowania tonull
.Jeśli albo
expression
. Typ lubtype
jest typem referencyjnym, a jawne boxing, rozpakowywanie lub konwersja odwołania istnieje zexpression
klasy . Wpisz wartośćtype
, metoda implementowania tonull
.
Podniesione i niepodniesione
Jeśli metoda implementowania nie null
jest :
Jeśli
expression
. Typ jest przypisywany do typu argumentu metody implementowania, a zwracany typ metody implementowania można przypisać dotype
elementu , węzeł nie zostanie zniesiony.Jeśli jeden lub oba z .
expression
Typ lubtype
to typ wartości dopuszczający wartość null, a odpowiadające im typy wartości niepustych są równe typowi argumentu i zwracanym typowi metody implementowania, węzeł zostanie zniesiony.
Jeśli metoda implementowania to null
:
Jeśli oba
expression
. Wpisz itype
nie ma wartości null, węzeł nie zostanie zniesiony.W przeciwnym razie węzeł zostanie zniesiony.