1

初期ファクトリメソッドの外部で.NET(4.0以降)のConditionalExpressionのIfTrueプロパティを設定する方法はありますか?

私の目標は、結果のアクション(IfTrue)の実行前に述語がチェックされるが、代替アクション(IfFalse)が独立して設定されるように、汎用のSafeActionクラスを作成することです。

必要な方法でConditionalExpressionオブジェクトを生成するための独自のファクトリメソッドを持つことができると思います。これらのプロパティ(IfTrue、IfFalse、Test)は単なるデリゲートであり、ConditionalExpressionオブジェクトのライフサイクル全体でリセットできると思っていました。

4

1 に答える 1

0

いいえ、それは不可能です。これには独自のメソッドを作成する必要があります。

このための流暢な拡張メソッドを作成できます。

public static ConditionalExpression WithTrue(this ConditionalExpression item,
                                             Expression ifTrue)
{
    return Expression.Condition(item.Test, ifTrue, item.IfFalse, item.Type);
}
于 2013-02-07T14:03:39.470 に答える