【发布时间】:2010-06-23 18:22:48
【问题描述】:
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;
【问题讨论】:
-
发布更多代码。这件看起来不错
-
谁能解释一下为什么 SendStuffAction 被视为静态的?
-
如果你使用一个方法作为字段初始化器,它总是必须是一个静态方法。在字段初始化之前,无法保证实例处于一致状态,因此不允许使用实例方法。
标签: c#