0

次のクラスがあるとします

public class Conditional 
{
    private readonly Func<Boolean> _conditional;

    public Conditional(Func<Boolean> test)
    {
        _conditional = test;
    }

    public override BehaviourReturnCode Behave()
    {
        var conditionalResult = _conditional.Invoke();
 //... keeps going
 }

したがって、条件付きのインスタンスを作成するときは、次のようにします

var isAlive = new Conditional(actor.IsAlive);

問題は、 _conditionalのメソッド名、この場合は IsAliveをどのように見つけることができるかということです。

参考までに _conditional.Method.Name はそれを行いません:D

乾杯

4

1 に答える 1

4

次の点を考慮してください。

Func<bool> UserIsAlive = () =>
    {
        return false;
    };

Func<bool> UserIsDead = UserIsAlive;

同じラムダ関数を参照する 2 つのローカル変数があります。

どれが本当の名前ですか? UserIsAliveまたはUserIsDead

ヒント: 名前はありません。関数です。何らかの方法で名前を付けたい場合は、その方法を決定するのはあなた次第です。クラスにラップしますか?辞書に保存しますか?そのように関数に名前を渡しますか?

var isAlive = new Conditional(actor.IsAlive, "IsAlive");

于 2013-10-09T21:01:50.307 に答える