说我有以下课程
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
}
所以当我创建一个Conditional实例时,我会做类似
的事情var isAlive = new Conditional(actor.IsAlive);
所以问题是,我怎样才能找到 _conditional 的方法名称,在这种情况下是IsAlive?
FYI _conditional.Method.Name不这样做:D
干杯
答案 0 :(得分:4)
请考虑以下事项:
Func<bool> UserIsAlive = () =>
{
return false;
};
Func<bool> UserIsDead = UserIsAlive;
你有两个引用相同lambda函数的局部变量。
哪一个是真名? UserIsAlive
或UserIsDead
?
提示:它没有名字。这是一个功能。如果你想以某种方式命名它,由你决定如何这样做。把它包在课堂上?把它存放在字典中?将名称传递给函数是这样的吗?
var isAlive = new Conditional(actor.IsAlive, "IsAlive");