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;

您有两个引用相同 lambda 函数的局部变量。

哪个是真名? UserIsAlive还是UserIsDead

提示:它没有名字。这是一个功能。如果您想以某种方式命名它,则由您决定如何命名。把它包在一个班级里?将其存储在字典中?像这样将名称传递给函数?

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

于 2013-10-09T21:01:50.307 回答