Expression クラス

定義

式ツリー ノードを表すクラスの派生元の基底クラスを提供します。 さまざまなノード型を作成する static (Visual Basic では Shared) ファクトリ メソッドも含まれています。 これは abstract クラスです。

public ref class Expression abstract
public abstract class Expression
type Expression = class
Public MustInherit Class Expression
継承
Expression
派生

次のコード例は、ブロック式を作成する方法を示しています。 ブロック式は、2 つの MethodCallExpression オブジェクトと 1 つの ConstantExpression オブジェクトで構成されます。

// Add the following directive to your file:
// using System.Linq.Expressions;

// The block expression allows for executing several expressions sequentually.
// When the block expression is executed,
// it returns the value of the last expression in the sequence.
BlockExpression blockExpr = Expression.Block(
    Expression.Call(
        null,
        typeof(Console).GetMethod("Write", new Type[] { typeof(String) }),
        Expression.Constant("Hello ")
       ),
    Expression.Call(
        null,
        typeof(Console).GetMethod("WriteLine", new Type[] { typeof(String) }),
        Expression.Constant("World!")
        ),
    Expression.Constant(42)
);

Console.WriteLine("The result of executing the expression tree:");
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
var result = Expression.Lambda<Func<int>>(blockExpr).Compile()();

// Print out the expressions from the block expression.
Console.WriteLine("The expressions from the block expression:");
foreach (var expr in blockExpr.Expressions)
    Console.WriteLine(expr.ToString());

// Print out the result of the tree execution.
Console.WriteLine("The return value of the block expression:");
Console.WriteLine(result);

// This code example produces the following output:
//
// The result of executing the expression tree:
// Hello World!

// The expressions from the block expression:
// Write("Hello ")
// WriteLine("World!")
// 42

// The return value of the block expression:
// 42
' Add the following directive to your file:
' Imports System.Linq.Expressions

' The block expression enables you to execute several expressions sequentually.
' When the block expression is executed,
' it returns the value of the last expression in the sequence.
Dim blockExpr As BlockExpression = Expression.Block(
    Expression.Call(
        Nothing,
        GetType(Console).GetMethod("Write", New Type() {GetType(String)}),
        Expression.Constant("Hello ")
       ),
    Expression.Call(
        Nothing,
        GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}),
        Expression.Constant("World!")
        ),
    Expression.Constant(42)
)

Console.WriteLine("The result of executing the expression tree:")
' The following statement first creates an expression tree,
' then compiles it, and then executes it.           
Dim result = Expression.Lambda(Of Func(Of Integer))(blockExpr).Compile()()

' Print the expressions from the block expression.
Console.WriteLine("The expressions from the block expression:")
For Each expr In blockExpr.Expressions
    Console.WriteLine(expr.ToString())
Next

' Print the result of the tree execution.
Console.WriteLine("The return value of the block expression:")
Console.WriteLine(result)

' This code example produces the following output:
'
' The result of executing the expression tree:
' Hello World!

' The expressions from the block expression:
' Write("Hello ")
' WriteLine("World!")
' 42

' The return value of the block expression:
' 42

コンストラクター

Expression()

Expression の新しいインスタンスを作成します。

Expression(ExpressionType, Type)
互換性のために残されています。
互換性のために残されています。

Expression クラスの新しいインスタンスを初期化します。

プロパティ

CanReduce

ノードをより単純なノードに変形できることを示します。 これが true を返す場合、Reduce() を呼び出して単純化された形式を生成できます。

NodeType

この Expression のノード型を取得します。

Type

この Expression が表す式の静的な型を取得します。

メソッド

Accept(ExpressionVisitor)

このノード型の特定の Visit メソッドにデスパッチします。 たとえば、MethodCallExpressionVisitMethodCall(MethodCallExpression) を呼び出します。

Add(Expression, Expression)

オーバーフロー チェックを行わない算術加算演算を表す BinaryExpression を作成します。

Add(Expression, Expression, MethodInfo)

オーバーフロー チェックを行わない算術加算演算を表す BinaryExpression を作成します。 実装メソッドを指定できます。

AddAssign(Expression, Expression)

オーバーフロー チェックを行わない加算代入演算を表す BinaryExpression を作成します。

AddAssign(Expression, Expression, MethodInfo)

オーバーフロー チェックを行わない加算代入演算を表す BinaryExpression を作成します。

AddAssign(Expression, Expression, MethodInfo, LambdaExpression)

オーバーフロー チェックを行わない加算代入演算を表す BinaryExpression を作成します。

AddAssignChecked(Expression, Expression)

オーバーフロー チェックを行う加算代入演算を表す BinaryExpression を作成します。

AddAssignChecked(Expression, Expression, MethodInfo)

オーバーフロー チェックを行う加算代入演算を表す BinaryExpression を作成します。

AddAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)

オーバーフロー チェックを行う加算代入演算を表す BinaryExpression を作成します。

AddChecked(Expression, Expression)

オーバーフロー チェックを行う算術加算演算を表す BinaryExpression を作成します。

AddChecked(Expression, Expression, MethodInfo)

オーバーフロー チェックを行う算術加算演算を表す BinaryExpression を作成します。 実装メソッドを指定できます。

And(Expression, Expression)

ビットごとの BinaryExpression 演算を表す AND を作成します。

And(Expression, Expression, MethodInfo)

ビットごとの BinaryExpression 演算を表す AND を作成します。 実装メソッドを指定できます。

AndAlso(Expression, Expression)

1 番目のオペランドが BinaryExpression に評価された場合にのみ 2 番目のオペランドを評価する条件付き AND 演算を表す true を作成します。

AndAlso(Expression, Expression, MethodInfo)

1 番目のオペランドが true に解決された場合にのみ 2 番目のオペランドを評価する条件付き BinaryExpression 演算を表す AND を作成します。 実装メソッドを指定できます。

AndAssign(Expression, Expression)

ビットごとの AND 代入演算を表す BinaryExpression を作成します。

AndAssign(Expression, Expression, MethodInfo)

ビットごとの AND 代入演算を表す BinaryExpression を作成します。

AndAssign(Expression, Expression, MethodInfo, LambdaExpression)

ビットごとの AND 代入演算を表す BinaryExpression を作成します。

ArrayAccess(Expression, Expression[])

配列にアクセスするための IndexExpression を作成します。

ArrayAccess(Expression, IEnumerable<Expression>)

多次元配列にアクセスするための IndexExpression を作成します。

ArrayIndex(Expression, Expression)

ランク 1 の配列への配列の添字演算子の適用を表す BinaryExpression を作成します。

ArrayIndex(Expression, Expression[])

多次元配列への配列の添字演算子の適用を表す MethodCallExpression を作成します。

ArrayIndex(Expression, IEnumerable<Expression>)

ランクが 1 より大きい配列への配列の添字演算子の適用を表す MethodCallExpression を作成します。

ArrayLength(Expression)

1 次元配列の長さを取得する式を表す UnaryExpression を作成します。

Assign(Expression, Expression)

代入演算を表す BinaryExpression を作成します。

Bind(MemberInfo, Expression)

フィールドまたはプロパティの初期化を表す MemberAssignment を作成します。

Bind(MethodInfo, Expression)

プロパティ アクセサー メソッドを使用したメンバーの初期化を表す MemberAssignment を作成します。

Block(Expression, Expression)

2 つの式を含み、変数を含まない BlockExpression を作成します。

Block(Expression, Expression, Expression)

3 つの式を含み、変数を含まない BlockExpression を作成します。

Block(Expression, Expression, Expression, Expression)

4 つの式を含み、変数を含まない BlockExpression を作成します。

Block(Expression, Expression, Expression, Expression, Expression)

5 つの式を含み、変数を含まない BlockExpression を作成します。

Block(Expression[])

指定された式を含み、変数を含まない BlockExpression を作成します。

Block(IEnumerable<Expression>)

指定された式を含み、変数を含まない BlockExpression を作成します。

Block(IEnumerable<ParameterExpression>, Expression[])

指定された変数および式を含む BlockExpression を作成します。

Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>)

指定された変数および式を含む BlockExpression を作成します。

Block(Type, Expression[])

指定された式を含み、変数を含まず、特定の結果の型を持つ BlockExpression を作成します。

Block(Type, IEnumerable<Expression>)

指定された式を含み、変数を含まず、特定の結果の型を持つ BlockExpression を作成します。

Block(Type, IEnumerable<ParameterExpression>, Expression[])

指定された変数および式を含む BlockExpression を作成します。

Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>)

指定された変数および式を含む BlockExpression を作成します。

Break(LabelTarget)

break ステートメントを表す GotoExpression を作成します。

Break(LabelTarget, Expression)

break ステートメントを表す GotoExpression を作成します。 ジャンプ時にラベルに渡す値を指定できます。

Break(LabelTarget, Expression, Type)

型を指定して、break ステートメントを表す GotoExpression を作成します。 ジャンプ時にラベルに渡す値を指定できます。

Break(LabelTarget, Type)

型を指定して、break ステートメントを表す GotoExpression を作成します。

Call(Expression, MethodInfo)

引数を受け取らないメソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(Expression, MethodInfo, Expression, Expression)

2 つの引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(Expression, MethodInfo, Expression, Expression, Expression)

3 つの引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(Expression, MethodInfo, Expression[])

引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(Expression, MethodInfo, IEnumerable<Expression>)

引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(Expression, String, Type[], Expression[])

適切なファクトリ メソッドを呼び出すことにより、インスタンス メソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(MethodInfo, Expression)

1 つの引数を受け取る MethodCallExpression (Visual Basic では static) メソッドへの呼び出しを表す Shared を作成します。

Call(MethodInfo, Expression, Expression)

2 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(MethodInfo, Expression, Expression, Expression)

3 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(MethodInfo, Expression, Expression, Expression, Expression)

4 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

5 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(MethodInfo, Expression[])

引数を持つ static (Visual Basic では Shared) メソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(MethodInfo, IEnumerable<Expression>)

static (Visual Basic では Shared) メソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(Type, String, Type[], Expression[])

適切なファクトリ メソッドを呼び出すことにより、MethodCallExpression (Visual Basic では static) メソッドへの呼び出しを表す Shared を作成します。

Catch(ParameterExpression, Expression)

ハンドラー本体で使用する、キャッチされた CatchBlock オブジェクトへの参照を指定して、catch ステートメントを表す Exception を作成します。

Catch(ParameterExpression, Expression, Expression)

CatchBlock フィルターおよびキャッチされた Exception オブジェクトへの参照を指定して、catch ステートメントを表す Exception を作成します。

Catch(Type, Expression)

catch ステートメントを表す CatchBlock を作成します。

Catch(Type, Expression, Expression)

キャッチされた CatchBlock オブジェクトへの参照は指定せずに、Exception フィルターを指定して、catch ステートメントを表す Exception を作成します。

ClearDebugInfo(SymbolDocumentInfo)

シーケンス ポイントをクリアするための DebugInfoExpression を作成します。

Coalesce(Expression, Expression)

合体演算を表す BinaryExpression を作成します。

Coalesce(Expression, Expression, LambdaExpression)

変換関数を指定して合体演算を表す BinaryExpression を作成します。

Condition(Expression, Expression, Expression)

条件付きステートメントを表す ConditionalExpression を作成します。

Condition(Expression, Expression, Expression, Type)

条件付きステートメントを表す ConditionalExpression を作成します。

Constant(Object)

指定した値に設定された ConstantExpression プロパティを含む Value を作成します。

Constant(Object, Type)

指定した値に設定された ConstantExpression プロパティおよび Value プロパティを含む Type を作成します。

Continue(LabelTarget)

continue ステートメントを表す GotoExpression を作成します。

Continue(LabelTarget, Type)

型を指定して、continue ステートメントを表す GotoExpression を作成します。

Convert(Expression, Type)

型変換操作を表す UnaryExpression を作成します。

Convert(Expression, Type, MethodInfo)

実装メソッドが指定される変換演算を表す UnaryExpression を作成します。

ConvertChecked(Expression, Type)

変換後の型がオーバーフローした場合に例外をスローする変換演算を表す UnaryExpression を作成します。

ConvertChecked(Expression, Type, MethodInfo)

変換後の型がオーバーフローした場合に例外をスローし、実装メソッドが指定される変換演算を表す UnaryExpression を作成します。

DebugInfo(SymbolDocumentInfo, Int32, Int32, Int32, Int32)

指定したスパンを使用して、DebugInfoExpression を作成します。

Decrement(Expression)

式の値を 1 つ減らすデクリメントを表す UnaryExpression を作成します。

Decrement(Expression, MethodInfo)

式の値を 1 つ減らすデクリメントを表す UnaryExpression を作成します。

Default(Type)

指定した型に設定された DefaultExpression プロパティを含む Type を作成します。

Divide(Expression, Expression)

算術除算演算を表す BinaryExpression を作成します。

Divide(Expression, Expression, MethodInfo)

算術除算演算を表す BinaryExpression を作成します。 実装メソッドを指定できます。

DivideAssign(Expression, Expression)

オーバーフロー チェックを行わない除算代入演算を表す BinaryExpression を作成します。

DivideAssign(Expression, Expression, MethodInfo)

オーバーフロー チェックを行わない除算代入演算を表す BinaryExpression を作成します。

DivideAssign(Expression, Expression, MethodInfo, LambdaExpression)

オーバーフロー チェックを行わない除算代入演算を表す BinaryExpression を作成します。

Dynamic(CallSiteBinder, Type, Expression)

指定された DynamicExpression によってバインドされる動的操作を表す CallSiteBinder を作成します。

Dynamic(CallSiteBinder, Type, Expression, Expression)

指定された DynamicExpression によってバインドされる動的操作を表す CallSiteBinder を作成します。

Dynamic(CallSiteBinder, Type, Expression, Expression, Expression)

指定された DynamicExpression によってバインドされる動的操作を表す CallSiteBinder を作成します。

Dynamic(CallSiteBinder, Type, Expression, Expression, Expression, Expression)

指定された DynamicExpression によってバインドされる動的操作を表す CallSiteBinder を作成します。

Dynamic(CallSiteBinder, Type, Expression[])

指定された DynamicExpression によってバインドされる動的操作を表す CallSiteBinder を作成します。

Dynamic(CallSiteBinder, Type, IEnumerable<Expression>)

指定された DynamicExpression によってバインドされる動的操作を表す CallSiteBinder を作成します。

ElementInit(MethodInfo, Expression[])

2 番目の引数として値の配列を指定して、ElementInit を作成します。

ElementInit(MethodInfo, IEnumerable<Expression>)

2 番目の引数として ElementInit を指定して、IEnumerable<T> を作成します。

Empty()

Void 型の空の式を作成します。

Equal(Expression, Expression)

等価比較を表す BinaryExpression を作成します。

Equal(Expression, Expression, Boolean, MethodInfo)

等価比較を表す BinaryExpression を作成します。 実装メソッドを指定できます。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
ExclusiveOr(Expression, Expression)

ユーザー定義型の op_ExclusiveOr を使用して、ビットごとの XOR 演算を表す BinaryExpression を作成します。

ExclusiveOr(Expression, Expression, MethodInfo)

ユーザー定義型の op_ExclusiveOr を使用して、ビットごとの XOR 演算を表す BinaryExpression を作成します。 実装メソッドを指定できます。

ExclusiveOrAssign(Expression, Expression)

ユーザー定義型の op_ExclusiveOr を使用して、ビットごとの XOR 代入演算を表す BinaryExpression を作成します。

ExclusiveOrAssign(Expression, Expression, MethodInfo)

ユーザー定義型の op_ExclusiveOr を使用して、ビットごとの XOR 代入演算を表す BinaryExpression を作成します。

ExclusiveOrAssign(Expression, Expression, MethodInfo, LambdaExpression)

ユーザー定義型の op_ExclusiveOr を使用して、ビットごとの XOR 代入演算を表す BinaryExpression を作成します。

Field(Expression, FieldInfo)

フィールドへのアクセスを表す MemberExpression を作成します。

Field(Expression, String)

フィールドの名前を指定してフィールドへのアクセスを表す MemberExpression を作成します。

Field(Expression, Type, String)

フィールドへのアクセスを表す MemberExpression を作成します。

GetActionType(Type[])

特定の型引数を Type 持つジェネリック Action デリゲート型を表すオブジェクトを作成します。

GetDelegateType(Type[])

特定の型引数を Type 持つジェネリック Func<TResult> 型または Action デリゲート型を表すオブジェクトを取得します。

GetFuncType(Type[])

特定の型引数を Type 持つジェネリック Func<TResult> デリゲート型を表すオブジェクトを作成します。 最後の型引数で、作成するデリゲートの戻り値の型を指定します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
Goto(LabelTarget)

go to ステートメントを表す GotoExpression を作成します。

Goto(LabelTarget, Expression)

go to ステートメントを表す GotoExpression を作成します。 ジャンプ時にラベルに渡す値を指定できます。

Goto(LabelTarget, Expression, Type)

型を指定して、go to ステートメントを表す GotoExpression を作成します。 ジャンプ時にラベルに渡す値を指定できます。

Goto(LabelTarget, Type)

型を指定して、go to ステートメントを表す GotoExpression を作成します。

GreaterThan(Expression, Expression)

"大なり" 数値比較を表す BinaryExpression を作成します。

GreaterThan(Expression, Expression, Boolean, MethodInfo)

"大なり" 数値比較を表す BinaryExpression を作成します。 実装メソッドを指定できます。

GreaterThanOrEqual(Expression, Expression)

"以上" 数値比較を表す BinaryExpression を作成します。

GreaterThanOrEqual(Expression, Expression, Boolean, MethodInfo)

"以上" 数値比較を表す BinaryExpression を作成します。

IfThen(Expression, Expression)

ConditionalExpression ステートメントを指定して、条件付きブロックを表す if を作成します。

IfThenElse(Expression, Expression, Expression)

ConditionalExpression ステートメントと if ステートメントを指定して、条件付きブロックを表す else を作成します。

Increment(Expression)

式の値を 1 つ増やすインクリメントを表す UnaryExpression を作成します。

Increment(Expression, MethodInfo)

式の値を 1 つ増やすインクリメントを表す UnaryExpression を作成します。

Invoke(Expression, Expression[])

引数式のリストにデリゲートまたはラムダ式を適用する InvocationExpression を作成します。

Invoke(Expression, IEnumerable<Expression>)

引数式のリストにデリゲートまたはラムダ式を適用する InvocationExpression を作成します。

IsFalse(Expression)

式が false に評価されるかどうかを返します。

IsFalse(Expression, MethodInfo)

式が false に評価されるかどうかを返します。

IsTrue(Expression)

式が true に評価されるかどうかを返します。

IsTrue(Expression, MethodInfo)

式が true に評価されるかどうかを返します。

Label()

void 型で名前なしのラベルを表す LabelTarget を作成します。

Label(LabelTarget)

既定値のないラベルを表す LabelExpression を作成します。

Label(LabelTarget, Expression)

指定された既定値を持つラベルを表す LabelExpression を作成します。

Label(String)

指定された名前を持つ void 型のラベルを表す LabelTarget を作成します。

Label(Type)

型を指定して、ラベルを表す LabelTarget を作成します。

Label(Type, String)

指定した型および名前を使用して、ラベルを表す LabelTarget を作成します。

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

最初に式本体からデリゲート型を構築し、末尾呼び出し最適化が適用されるかどうかを示すパラメーターを構築し、パラメーター式の列挙可能なコレクションを構築することで LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

Lambda(Expression, Boolean, ParameterExpression[])

最初に式本体からデリゲート型を構築し、末尾呼び出し最適化が適用されるかどうかを示すパラメーターを構築し、パラメーター式の配列を構築することで LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

Lambda(Expression, IEnumerable<ParameterExpression>)

最初に式本体をデリゲート型を構築し、次にパラメーター式の列挙可能なコレクションを構築することで LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

Lambda(Expression, ParameterExpression[])

最初に式本体をデリゲート型を構築し、次にパラメーター式の配列を構築することで LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>)

最初に式本体からデリゲート型を構築し、ラムダの名前、末尾呼び出し最適化が適用されるかどうかを示すパラメーター、パラメーター式の列挙可能なコレクションを構築することで LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

Lambda(Expression, String, IEnumerable<ParameterExpression>)

最初に式本体をデリゲート型を構築し、ラムダの名前を構築し、パラメーター式の列挙可能なコレクションを構築することで LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>)

末尾呼び出し最適化が適用されるかどうかを示すパラメーターとパラメーター式の列挙可能なコレクションを使用し、コンパイル時にデリゲート型が既知の LambdaExpression を作成します。

Lambda(Type, Expression, Boolean, ParameterExpression[])

末尾呼び出し最適化が適用されるかどうかを示すパラメーターとパラメーター式の配列を使用し、コンパイル時にデリゲート型が既知の LambdaExpression を作成します。

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

パラメーター式の列挙可能なコレクションを使用し、コンパイル時にデリゲート型が既知である LambdaExpression を作成します。

Lambda(Type, Expression, ParameterExpression[])

パラメーター式の配列を使用し、コンパイル時にデリゲート型が既知である LambdaExpression を作成します。

Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>)

ラムダの名前、末尾呼び出し最適化が適用されるかどうかを示すパラメーター、パラメーター式の列挙可能なコレクションを使用し、コンパイル時にデリゲート型が既知の LambdaExpression を作成します。

Lambda(Type, Expression, String, IEnumerable<ParameterExpression>)

ラムダの名前とパラメーター式の列挙可能なコレクションを使用し、コンパイル時にデリゲート型が既知である LambdaExpression を作成します。

Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>)

末尾呼び出し最適化が適用されるかどうかを示すパラメーターとパラメーター式の列挙可能なコレクションを使用し、コンパイル時にデリゲート型が既知の Expression<TDelegate> を作成します。

Lambda<TDelegate>(Expression, Boolean, ParameterExpression[])

末尾呼び出し最適化が適用されるかどうかを示すパラメーターとパラメーター式の配列を使用し、コンパイル時にデリゲート型が既知の Expression<TDelegate> を作成します。

Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>)

パラメーター式の列挙可能なコレクションを使用し、コンパイル時にデリゲート型が既知である Expression<TDelegate> を作成します。

Lambda<TDelegate>(Expression, ParameterExpression[])

パラメーター式の配列を使用し、コンパイル時にデリゲート型が既知である Expression<TDelegate> を作成します。

Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>)

ラムダの名前、末尾呼び出し最適化が適用されるかどうかを示すパラメーター、パラメーター式の列挙可能なコレクションを使用し、コンパイル時にデリゲート型が既知の Expression<TDelegate> を作成します。

Lambda<TDelegate>(Expression, String, IEnumerable<ParameterExpression>)

ラムダの名前とパラメーター式の列挙可能なコレクションを使用し、コンパイル時にデリゲート型が既知である Expression<TDelegate> を作成します。

LeftShift(Expression, Expression)

ビットごとの左シフト演算を表す BinaryExpression を作成します。

LeftShift(Expression, Expression, MethodInfo)

ビットごとの左シフト演算を表す BinaryExpression を作成します。

LeftShiftAssign(Expression, Expression)

ビットごとの左シフト代入演算を表す BinaryExpression を作成します。

LeftShiftAssign(Expression, Expression, MethodInfo)

ビットごとの左シフト代入演算を表す BinaryExpression を作成します。

LeftShiftAssign(Expression, Expression, MethodInfo, LambdaExpression)

ビットごとの左シフト代入演算を表す BinaryExpression を作成します。

LessThan(Expression, Expression)

"小なり" 数値比較を表す BinaryExpression を作成します。

LessThan(Expression, Expression, Boolean, MethodInfo)

"小なり" 数値比較を表す BinaryExpression を作成します。

LessThanOrEqual(Expression, Expression)

"以下" 数値比較を表す BinaryExpression を作成します。

LessThanOrEqual(Expression, Expression, Boolean, MethodInfo)

"以下" 数値比較を表す BinaryExpression を作成します。

ListBind(MemberInfo, ElementInit[])

メンバーがフィールドまたはプロパティである MemberListBinding を作成します。

ListBind(MemberInfo, IEnumerable<ElementInit>)

メンバーがフィールドまたはプロパティである MemberListBinding を作成します。

ListBind(MethodInfo, ElementInit[])

指定したプロパティ アクセサー メソッドに基づいて MemberListBinding オブジェクトを作成します。

ListBind(MethodInfo, IEnumerable<ElementInit>)

指定したプロパティ アクセサー メソッドに基づいて MemberListBinding を作成します。

ListInit(NewExpression, ElementInit[])

指定した ListInitExpression オブジェクトを使用してコレクションを初期化する ElementInit を作成します。

ListInit(NewExpression, Expression[])

"Add" という名前のメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。

ListInit(NewExpression, IEnumerable<ElementInit>)

指定した ListInitExpression オブジェクトを使用してコレクションを初期化する ElementInit を作成します。

ListInit(NewExpression, IEnumerable<Expression>)

"Add" という名前のメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。

ListInit(NewExpression, MethodInfo, Expression[])

指定したメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

指定したメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。

Loop(Expression)

指定した本体を使用して、LoopExpression を作成します。

Loop(Expression, LabelTarget)

指定した本体および break の移動先を使用して、LoopExpression を作成します。

Loop(Expression, LabelTarget, LabelTarget)

指定した本体を使用して、LoopExpression を作成します。

MakeBinary(ExpressionType, Expression, Expression)

適切なファクトリ メソッドを呼び出すことにより、左オペランドと右オペランドを指定して、BinaryExpression を作成します。

MakeBinary(ExpressionType, Expression, Expression, Boolean, MethodInfo)

適切なファクトリ メソッドを呼び出すことにより、左オペランド、右オペランド、および実装メソッドを指定して、BinaryExpression を作成します。

MakeBinary(ExpressionType, Expression, Expression, Boolean, MethodInfo, LambdaExpression)

適切なファクトリ メソッドを呼び出すことにより、左オペランド、右オペランド、実装メソッド、および型変換関数を指定して、BinaryExpression を作成します。

MakeCatchBlock(Type, ParameterExpression, Expression, Expression)

指定された要素を使用して、catch ステートメントを表す CatchBlock を作成します。

MakeDynamic(Type, CallSiteBinder, Expression)

指定された DynamicExpression によってバインドされる動的操作を表す CallSiteBinder を作成します。

MakeDynamic(Type, CallSiteBinder, Expression, Expression)

指定された CallSiteBinder および 2 つの引数によってバインドされる動的操作を表す DynamicExpression を作成します。

MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression)

指定された DynamicExpression および 3 つの引数によってバインドされる動的操作を表す CallSiteBinder を作成します。

MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression, Expression)

指定された DynamicExpression および 4 つの引数によってバインドされる動的操作を表す CallSiteBinder を作成します。

MakeDynamic(Type, CallSiteBinder, Expression[])

指定された DynamicExpression によってバインドされる動的操作を表す CallSiteBinder を作成します。

MakeDynamic(Type, CallSiteBinder, IEnumerable<Expression>)

指定された DynamicExpression によってバインドされる動的操作を表す CallSiteBinder を作成します。

MakeGoto(GotoExpressionKind, LabelTarget, Expression, Type)

指定した GotoExpression のジャンプを表す GotoExpressionKind を作成します。 ジャンプ時にラベルに渡す値も指定できます。

MakeIndex(Expression, PropertyInfo, IEnumerable<Expression>)

オブジェクトのインデックス付きプロパティへのアクセスを表す IndexExpression を作成します。

MakeMemberAccess(Expression, MemberInfo)

フィールドまたはプロパティのいずれかへのアクセスを表す MemberExpression を作成します。

MakeTry(Type, Expression, Expression, Expression, IEnumerable<CatchBlock>)

指定された要素を使用して、try ブロックを表す TryExpression を作成します。

MakeUnary(ExpressionType, Expression, Type)

適切なファクトリ メソッドを呼び出すことにより、オペランドを指定して、UnaryExpression を作成します。

MakeUnary(ExpressionType, Expression, Type, MethodInfo)

適切なファクトリ メソッドを呼び出すことにより、オペランドおよび実装メソッドを指定して、UnaryExpression を作成します。

MemberBind(MemberInfo, IEnumerable<MemberBinding>)

フィールドまたはプロパティのメンバーの再帰的な初期化を表す MemberMemberBinding を作成します。

MemberBind(MemberInfo, MemberBinding[])

フィールドまたはプロパティのメンバーの再帰的な初期化を表す MemberMemberBinding を作成します。

MemberBind(MethodInfo, IEnumerable<MemberBinding>)

プロパティ アクセサー メソッドを使用してアクセスされるメンバーのメンバーの再帰的な初期化を表す MemberMemberBinding を作成します。

MemberBind(MethodInfo, MemberBinding[])

プロパティ アクセサー メソッドを使用してアクセスされるメンバーのメンバーの再帰的な初期化を表す MemberMemberBinding を作成します。

MemberInit(NewExpression, IEnumerable<MemberBinding>)

新しいオブジェクトを作成し、そのオブジェクトのプロパティを初期化する式を表します。

MemberInit(NewExpression, MemberBinding[])

MemberInitExpression を作成します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Modulo(Expression, Expression)

算術剰余演算を表す BinaryExpression を作成します。

Modulo(Expression, Expression, MethodInfo)

算術剰余演算を表す BinaryExpression を作成します。

ModuloAssign(Expression, Expression)

剰余代入演算を表す BinaryExpression を作成します。

ModuloAssign(Expression, Expression, MethodInfo)

剰余代入演算を表す BinaryExpression を作成します。

ModuloAssign(Expression, Expression, MethodInfo, LambdaExpression)

剰余代入演算を表す BinaryExpression を作成します。

Multiply(Expression, Expression)

オーバーフロー チェックを行わない算術乗算演算を表す BinaryExpression を作成します。

Multiply(Expression, Expression, MethodInfo)

オーバーフロー チェックを行わない算術乗算演算を表す BinaryExpression を作成します。

MultiplyAssign(Expression, Expression)

オーバーフロー チェックを行わない乗算代入演算を表す BinaryExpression を作成します。

MultiplyAssign(Expression, Expression, MethodInfo)

オーバーフロー チェックを行わない乗算代入演算を表す BinaryExpression を作成します。

MultiplyAssign(Expression, Expression, MethodInfo, LambdaExpression)

オーバーフロー チェックを行わない乗算代入演算を表す BinaryExpression を作成します。

MultiplyAssignChecked(Expression, Expression)

オーバーフロー チェックを行う乗算代入演算を表す BinaryExpression を作成します。

MultiplyAssignChecked(Expression, Expression, MethodInfo)

オーバーフロー チェックを行う乗算代入演算を表す BinaryExpression を作成します。

MultiplyAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)

オーバーフロー チェックを行う乗算代入演算を表す BinaryExpression を作成します。

MultiplyChecked(Expression, Expression)

オーバーフロー チェックを行う算術乗算演算を表す BinaryExpression を作成します。

MultiplyChecked(Expression, Expression, MethodInfo)

オーバーフロー チェックを行う算術乗算演算を表す BinaryExpression を作成します。

Negate(Expression)

算術否定演算を表す UnaryExpression を作成します。

Negate(Expression, MethodInfo)

算術否定演算を表す UnaryExpression を作成します。

NegateChecked(Expression)

オーバーフロー チェックを行う算術否定演算を表す UnaryExpression を作成します。

NegateChecked(Expression, MethodInfo)

オーバーフロー チェックを行う算術否定演算を表す UnaryExpression を作成します。 実装メソッドを指定できます。

New(ConstructorInfo)

引数を受け取らない指定したコンストラクターの呼び出しを表す NewExpression を作成します。

New(ConstructorInfo, Expression[])

指定した引数を持つ指定したコンストラクターの呼び出しを表す NewExpression を作成します。

New(ConstructorInfo, IEnumerable<Expression>)

指定した引数を持つ指定したコンストラクターの呼び出しを表す NewExpression を作成します。

New(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>)

指定した引数を持つ指定したコンストラクターの呼び出しを表す NewExpression を作成します。 コンストラクターが初期化したフィールドにアクセスするメンバーが指定されます。

New(ConstructorInfo, IEnumerable<Expression>, MemberInfo[])

指定した引数を持つ指定したコンストラクターの呼び出しを表す NewExpression を作成します。 コンストラクターが初期化したフィールドにアクセスするメンバーが配列として指定されます。

New(Type)

指定した型のパラメーターなしのコンストラクターの呼び出しを表す NewExpression を作成します。

NewArrayBounds(Type, Expression[])

指定したランクを持つ配列の作成を表す NewArrayExpression を作成します。

NewArrayBounds(Type, IEnumerable<Expression>)

指定したランクを持つ配列の作成を表す NewArrayExpression を作成します。

NewArrayInit(Type, Expression[])

1 次元配列の作成と、要素のリストからの初期化を表す NewArrayExpression を作成します。

NewArrayInit(Type, IEnumerable<Expression>)

1 次元配列の作成と、要素のリストからの初期化を表す NewArrayExpression を作成します。

Not(Expression)

ビットごとの補数演算を表す UnaryExpression を作成します。

Not(Expression, MethodInfo)

ビットごとの補数演算を表す UnaryExpression を作成します。 実装メソッドを指定できます。

NotEqual(Expression, Expression)

非等価比較を表す BinaryExpression を作成します。

NotEqual(Expression, Expression, Boolean, MethodInfo)

非等価比較を表す BinaryExpression を作成します。

OnesComplement(Expression)

1 の補数を表す式を返します。

OnesComplement(Expression, MethodInfo)

1 の補数を表す式を返します。

Or(Expression, Expression)

ビットごとの BinaryExpression 演算を表す OR を作成します。

Or(Expression, Expression, MethodInfo)

ビットごとの BinaryExpression 演算を表す OR を作成します。

OrAssign(Expression, Expression)

ビットごとの OR 代入演算を表す BinaryExpression を作成します。

OrAssign(Expression, Expression, MethodInfo)

ビットごとの OR 代入演算を表す BinaryExpression を作成します。

OrAssign(Expression, Expression, MethodInfo, LambdaExpression)

ビットごとの OR 代入演算を表す BinaryExpression を作成します。

OrElse(Expression, Expression)

1 番目のオペランドが BinaryExpression に評価された場合にのみ 2 番目のオペランドを評価する条件付き OR 演算を表す false を作成します。

OrElse(Expression, Expression, MethodInfo)

1 番目のオペランドが BinaryExpression に評価された場合にのみ 2 番目のオペランドを評価する条件付き OR 演算を表す false を作成します。

Parameter(Type)

式ツリーでパラメーターまたは変数を識別するために使用できる ParameterExpression ノードを作成します。

Parameter(Type, String)

式ツリーでパラメーターまたは変数を識別するために使用できる ParameterExpression ノードを作成します。

PostDecrementAssign(Expression)

式の代入と、それに続く元の式の値を 1 つ減らすデクリメントを表す UnaryExpression を作成します。

PostDecrementAssign(Expression, MethodInfo)

式の代入と、それに続く元の式の値を 1 つ減らすデクリメントを表す UnaryExpression を作成します。

PostIncrementAssign(Expression)

式の代入と、それに続く元の式の値を 1 つ増やすインクリメントを表す UnaryExpression を作成します。

PostIncrementAssign(Expression, MethodInfo)

式の代入と、それに続く元の式の値を 1 つ増やすインクリメントを表す UnaryExpression を作成します。

Power(Expression, Expression)

数値の累乗を表す BinaryExpression を作成します。

Power(Expression, Expression, MethodInfo)

数値の累乗を表す BinaryExpression を作成します。

PowerAssign(Expression, Expression)

式を累乗し、結果を元の式に代入する操作を表す BinaryExpression を作成します。

PowerAssign(Expression, Expression, MethodInfo)

式を累乗し、結果を元の式に代入する操作を表す BinaryExpression を作成します。

PowerAssign(Expression, Expression, MethodInfo, LambdaExpression)

式を累乗し、結果を元の式に代入する操作を表す BinaryExpression を作成します。

PreDecrementAssign(Expression)

式の値を 1 つデクリメントし、結果を元の式に代入する UnaryExpression を作成します。

PreDecrementAssign(Expression, MethodInfo)

式の値を 1 つデクリメントし、結果を元の式に代入する UnaryExpression を作成します。

PreIncrementAssign(Expression)

式の値を 1 つインクリメントし、結果を元の式に代入する UnaryExpression を作成します。

PreIncrementAssign(Expression, MethodInfo)

式の値を 1 つインクリメントし、結果を元の式に代入する UnaryExpression を作成します。

Property(Expression, MethodInfo)

プロパティ アクセサー メソッドを使用することによるプロパティへのアクセスを表す MemberExpression を作成します。

Property(Expression, PropertyInfo)

プロパティへのアクセスを表す MemberExpression を作成します。

Property(Expression, PropertyInfo, Expression[])

インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。

Property(Expression, PropertyInfo, IEnumerable<Expression>)

インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。

Property(Expression, String)

プロパティへのアクセスを表す MemberExpression を作成します。

Property(Expression, String, Expression[])

インデックス付きプロパティへのアクセスを表す IndexExpression を作成します。

Property(Expression, Type, String)

プロパティにアクセスする MemberExpression を作成します。

PropertyOrField(Expression, String)

プロパティまたはフィールドへのアクセスを表す MemberExpression を作成します。

Quote(Expression)

UnaryExpression 型の定数値を持つ式を表す Expression を作成します。

Reduce()

このノードをより単純な式に変形します。 CanReduce が true を返す場合、これは有効な式を返します。 このメソッドは、それ自体も単純化する必要がある別のノードを返す場合があります。

ReduceAndCheck()

このノードをより単純な式に変形します。 CanReduce が true を返す場合、これは有効な式を返します。 このメソッドは、それ自体も単純化する必要がある別のノードを返す場合があります。

ReduceExtensions()

式を既知のノード型 (拡張ノードではない型) に単純化し、それが既に既知の型である場合は単に式を返します。

ReferenceEqual(Expression, Expression)

参照が等値であるかどうかの比較を表す BinaryExpression を作成します。

ReferenceNotEqual(Expression, Expression)

参照が等値でないかどうかの比較を表す BinaryExpression を作成します。

Rethrow()

例外の再スローを表す UnaryExpression を作成します。

Rethrow(Type)

型を指定して、例外の再スローを表す UnaryExpression を作成します。

Return(LabelTarget)

return ステートメントを表す GotoExpression を作成します。

Return(LabelTarget, Expression)

return ステートメントを表す GotoExpression を作成します。 ジャンプ時にラベルに渡す値を指定できます。

Return(LabelTarget, Expression, Type)

型を指定して、return ステートメントを表す GotoExpression を作成します。 ジャンプ時にラベルに渡す値を指定できます。

Return(LabelTarget, Type)

型を指定して、return ステートメントを表す GotoExpression を作成します。

RightShift(Expression, Expression)

ビットごとの右シフト演算を表す BinaryExpression を作成します。

RightShift(Expression, Expression, MethodInfo)

ビットごとの右シフト演算を表す BinaryExpression を作成します。

RightShiftAssign(Expression, Expression)

ビットごとの右シフト代入演算を表す BinaryExpression を作成します。

RightShiftAssign(Expression, Expression, MethodInfo)

ビットごとの右シフト代入演算を表す BinaryExpression を作成します。

RightShiftAssign(Expression, Expression, MethodInfo, LambdaExpression)

ビットごとの右シフト代入演算を表す BinaryExpression を作成します。

RuntimeVariables(IEnumerable<ParameterExpression>)

RuntimeVariablesExpression のインスタンスを作成します。

RuntimeVariables(ParameterExpression[])

RuntimeVariablesExpression のインスタンスを作成します。

Subtract(Expression, Expression)

オーバーフロー チェックを行わない算術減算演算を表す BinaryExpression を作成します。

Subtract(Expression, Expression, MethodInfo)

オーバーフロー チェックを行わない算術減算演算を表す BinaryExpression を作成します。

SubtractAssign(Expression, Expression)

オーバーフロー チェックを行わない減算代入演算を表す BinaryExpression を作成します。

SubtractAssign(Expression, Expression, MethodInfo)

オーバーフロー チェックを行わない減算代入演算を表す BinaryExpression を作成します。

SubtractAssign(Expression, Expression, MethodInfo, LambdaExpression)

オーバーフロー チェックを行わない減算代入演算を表す BinaryExpression を作成します。

SubtractAssignChecked(Expression, Expression)

オーバーフロー チェックを行う減算代入演算を表す BinaryExpression を作成します。

SubtractAssignChecked(Expression, Expression, MethodInfo)

オーバーフロー チェックを行う減算代入演算を表す BinaryExpression を作成します。

SubtractAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)

オーバーフロー チェックを行う減算代入演算を表す BinaryExpression を作成します。

SubtractChecked(Expression, Expression)

オーバーフロー チェックを行う算術減算演算を表す BinaryExpression を作成します。

SubtractChecked(Expression, Expression, MethodInfo)

オーバーフロー チェックを行う算術減算演算を表す BinaryExpression を作成します。

Switch(Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)

既定のケースがある SwitchExpression ステートメントを表す switch を作成します。

Switch(Expression, Expression, MethodInfo, SwitchCase[])

既定のケースがある SwitchExpression ステートメントを表す switch を作成します。

Switch(Expression, Expression, SwitchCase[])

既定のケースがある SwitchExpression ステートメントを表す switch を作成します。

Switch(Expression, SwitchCase[])

既定のケースのない SwitchExpression ステートメントを表す switch を作成します。

Switch(Type, Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)

既定のケースがある SwitchExpression ステートメントを表す switch を作成します。

Switch(Type, Expression, Expression, MethodInfo, SwitchCase[])

既定のケースがある SwitchExpression ステートメントを表す switch を作成します。

SwitchCase(Expression, Expression[])

SwitchCase で使用する SwitchExpression を作成します。

SwitchCase(Expression, IEnumerable<Expression>)

SwitchCase オブジェクトで使用される SwitchExpression オブジェクトを作成します。

SymbolDocument(String)

SymbolDocumentInfo のインスタンスを作成します。

SymbolDocument(String, Guid)

SymbolDocumentInfo のインスタンスを作成します。

SymbolDocument(String, Guid, Guid)

SymbolDocumentInfo のインスタンスを作成します。

SymbolDocument(String, Guid, Guid, Guid)

SymbolDocumentInfo のインスタンスを作成します。

Throw(Expression)

例外のスローを表す UnaryExpression を作成します。

Throw(Expression, Type)

型を指定して、例外のスローを表す UnaryExpression を作成します。

ToString()

Expression のテキスト表現を返します。

TryCatch(Expression, CatchBlock[])

任意の数の catch ステートメントを指定し、fault ブロックと finally ブロックを指定せずに、try ブロックを表す TryExpression を作成します。

TryCatchFinally(Expression, Expression, CatchBlock[])

任意の数の catch ステートメントおよび 1 つの finally ブロックを指定して、try ブロックを表す TryExpression を作成します。

TryFault(Expression, Expression)

fault ブロックを指定し、catch ステートメントを指定せずに、try ブロックを表す TryExpression を作成します。

TryFinally(Expression, Expression)

finally ブロックを指定し、catch ステートメントを指定せずに、try ブロックを表す TryExpression を作成します。

TryGetActionType(Type[], Type)

特定の型引数を持つ汎用 System.Action デリゲート型を表す Type オブジェクトを作成します。

TryGetFuncType(Type[], Type)

特定の型引数を持つ汎用 System.Func デリゲート型を表す Type オブジェクトを作成します。 最後の型引数で、作成するデリゲートの戻り値の型を指定します。

TypeAs(Expression, Type)

変換が失敗した場合に UnaryExpression が提供される明示的な参照変換またはボックス化変換を表す null を作成します。

TypeEqual(Expression, Type)

実行時の型 ID を比較する TypeBinaryExpression を作成します。

TypeIs(Expression, Type)

TypeBinaryExpression を作成します。

UnaryPlus(Expression)

単項プラス演算を表す UnaryExpression を作成します。

UnaryPlus(Expression, MethodInfo)

単項プラス演算を表す UnaryExpression を作成します。

Unbox(Expression, Type)

明示的なボックス化解除を表す UnaryExpression を作成します。

Variable(Type)

式ツリーでパラメーターまたは変数を識別するために使用できる ParameterExpression ノードを作成します。

Variable(Type, String)

式ツリーでパラメーターまたは変数を識別するために使用できる ParameterExpression ノードを作成します。

VisitChildren(ExpressionVisitor)

ノードを単純化し、単純化された式の visitor デリゲートを呼び出します。 ノードを単純化できない場合、このメソッドは例外をスローします。

適用対象