public class x : y
{
public Func<user, bool> SendStuffAction = SendStuff;
//overridden from y
public override bool SendStuff(user u)
{
//do stuff
}
}
采用上面的代码,其中SendStuff是一个本地重写的实例方法,我得到一个上下文错误,SendStuff不是静态的。委托不能指向SendStuff方法所在的同一个类中的实例方法吗?
错误是:无法在非静态上下文中访问静态方法
如果该方法是私有的,那么为什么它不起作用呢。
private Func<user, bool> SendStuffAction = SendStuff;
答案 0 :(得分:7)
是的,它可以......但是,如果你没有声明为静态,你需要在构造函数中设置它。
class MyClass
{
public Func<loan, user, bool> SendStuffAction ;
MyClass()
{
SendStuffAction = SendStuff;
}
bool SendStuff(loan loanVar, user userVar)
{
return true;
}
}