使用Func和实例方法

时间:2010-06-22 16:56:08

标签: c#

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;

1 个答案:

答案 0 :(得分:7)

是的,它可以......但是,如果你没有声明为静态,你需要在构造函数中设置它。

class MyClass
{
   public Func<loan, user, bool> SendStuffAction ;

   MyClass()
   {
      SendStuffAction = SendStuff;
   }

   bool SendStuff(loan loanVar, user userVar)
   {
      return true;
   }
}