Expression.Convert メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
型変換操作を表す UnaryExpression を作成します。
オーバーロード
Convert(Expression, Type) |
型変換操作を表す UnaryExpression を作成します。 |
Convert(Expression, Type, MethodInfo) |
実装メソッドが指定される変換演算を表す UnaryExpression を作成します。 |
Convert(Expression, Type)
型変換操作を表す UnaryExpression を作成します。
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
パラメーター
- expression
- Expression
Expression プロパティを等しく設定する Operand。
戻り値
UnaryExpression と等しい NodeType プロパティと、指定した値に設定された Convert プロパティおよび Operand プロパティを含む Type。
例外
expression
または type
が null
です。
expression
.Type と type
の間には変換演算子が定義されていません。
例
次のコード例は、型変換操作を表す式を作成する方法を示しています。
// 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
注釈
Method結果UnaryExpressionの の プロパティは、実装メソッドに設定されます。 IsLiftedToNull プロパティが false
です。 ノードがリフトされている場合、 IsLifted は です true
。 それ以外の場合は、false
となります。
メソッドの実装
次の規則は、操作の実装方法を決定します。
どちらかの
expression
場合。型またはtype
は、暗黙的または明示的な変換演算子 MethodInfo を定義するユーザー定義型です。その演算子を表す は実装メソッドです。それ以外の場合:
両方が
expression
の場合。型とtype
は、数値型またはブール型、または null 許容型または null 非許容列挙型を表します。実装メソッドは ですnull
。どちらかの
expression
場合。型またはtype
は参照型であり、 からexpression
明示的なボックス化、ボックス化解除、または参照変換が存在します。を にtype
入力します。実装メソッドは ですnull
。
リフトと非リフト
実装メソッドが でない null
場合:
の場合
expression
。型は実装メソッドの引数型に代入可能であり、実装メソッドの戻り値の型は にtype
割り当て可能です。ノードはリフトされません。の一方または両方の
expression
場合。型またはtype
が null 許容値型であり、対応する null 非許容値型はそれぞれ、実装メソッドの引数型と戻り値の型と等しく、ノードがリフトされます。
実装メソッドが の場合:null
両方が
expression
の場合。型 とtype
は null 非許容であり、ノードはリフトされません。それ以外の場合、ノードはリフトされます。
適用対象
Convert(Expression, Type, MethodInfo)
実装メソッドが指定される変換演算を表す UnaryExpression を作成します。
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
パラメーター
- expression
- Expression
Expression プロパティを等しく設定する Operand。
- method
- MethodInfo
MethodInfo プロパティを等しく設定する Method。
戻り値
UnaryExpression と等しい NodeType プロパティと、指定した値に設定された Convert、Operand、および Type の各プロパティを含む Method。
例外
expression
または type
が null
です。
method
は null
ではなく、それが表すメソッドは void
を返し、static
(Visual Basic では Shared
) ではないか、受け取る引数が 1 つだけではありません。
expression
.Type と type
の間には変換演算子が定義されていません。
- または -
expression
.Type は、method
によって表されるメソッドの引数型に代入できません。
- または -
method
によって表されるメソッドの戻り値の型は、type
に代入できません。
- または -
expression
.Type または type
は null 許容値型で、対応する null 非許容値型は method
によって表されるメソッドそれぞれの、引数型または戻り値の型と等しくありません。
method
記述に一致する複数のメソッドが見つかりました。
注釈
Method結果UnaryExpressionの の プロパティは、実装メソッドに設定されます。 IsLiftedToNull プロパティが false
です。 ノードがリフトされている場合、 IsLifted は です true
。 それ以外の場合は、false
となります。
メソッドの実装
次の規則は、操作の実装方法を決定します。
メソッドが でない
null
場合は、実装メソッドです。 1 つの引数を受け取る voidstatic
以外の (Shared
Visual Basic では) メソッドを表す必要があります。それ以外の場合
expression
は 。型またはtype
は、暗黙的または明示的な変換演算子 MethodInfo を定義するユーザー定義型です。その演算子を表す は実装メソッドです。それ以外の場合:
両方が
expression
の場合。型とtype
は、数値型またはブール型、または null 許容型または null 非許容列挙型を表します。実装メソッドは ですnull
。どちらかの
expression
場合。型またはtype
は参照型であり、 からexpression
明示的なボックス化、ボックス化解除、または参照変換が存在します。を にtype
入力します。実装メソッドは ですnull
。
リフトと非リフト
実装メソッドが でない null
場合:
の場合
expression
。型は実装メソッドの引数型に代入可能であり、実装メソッドの戻り値の型は にtype
割り当て可能です。ノードはリフトされません。のいずれかまたは両方の
expression
場合。型またはtype
は null 許容値型であり、対応する null 非許容値型はそれぞれ、実装メソッドの引数型と戻り値の型と等しく、ノードはリフトされます。
実装メソッドが の場合:null
両方が
expression
の場合。型 とtype
は null 非許容であり、ノードはリフトされません。それ以外の場合、ノードはリフトされます。
適用対象
.NET