この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

BlockExpression クラス

 

公開日: 2016年10月

変数を定義できる式のシーケンスを格納するブロックを表します。

名前空間:   System.Linq.Expressions
アセンブリ:  System.Core (System.Core.dll 内)

System.Object
  System.Linq.Expressions.Expression
    System.Linq.Expressions.BlockExpression

public class BlockExpression : Expression

名前説明
System_CAPS_pubpropertyCanReduce

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

System_CAPS_pubpropertyExpressions

このブロック内の式を取得します。

System_CAPS_pubpropertyNodeType

この式のノード型を返します。 拡張機能のノードは、このメソッドをオーバーライドする際に Extension を返す必要があります。(Expression.NodeType をオーバーライドします。)

System_CAPS_pubpropertyResult

このブロックでは、最後の式を取得します。

System_CAPS_pubpropertyType

この Expression が表す式の静的な型を取得します。(Expression.Type をオーバーライドします。)

System_CAPS_pubpropertyVariables

このブロックで定義されている変数を取得します。

名前説明
System_CAPS_protmethodAccept(ExpressionVisitor)

このノード型の特定の Visit メソッドにデスパッチします。 たとえば、MethodCallExpressionVisitMethodCall を呼び出します。(Expression.Accept(ExpressionVisitor) をオーバーライドします。)

System_CAPS_pubmethodEquals(Object)

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

System_CAPS_protmethodFinalize()

オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_protmethodMemberwiseClone()

現在の Object の簡易コピーを作成します。(Object から継承されます。)

System_CAPS_pubmethodReduce()

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

System_CAPS_pubmethodReduceAndCheck()

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

System_CAPS_pubmethodReduceExtensions()

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

System_CAPS_pubmethodToString()

Expression のテキスト表現を返します。(Expression から継承されます。)

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

これに似た式ですが、指定された子を使用する、新しい式を作成します。 すべての子が同じである場合、この式を返します。

System_CAPS_protmethodVisitChildren(ExpressionVisitor)

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

Block メソッドを使用するを作成、 BlockExpressionです。

次のコード例では、ブロックの式を作成する方法を示します。 ブロックの式から成る 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

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
4.0 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
4.0 以降で使用可能
Windows Phone Silverlight
8.0 以降で使用可能
Windows Phone
8.1 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: