假设我有一个声明如下的类:
public class ExampleClass
{
public Action<int> Do { get; set; }
public ExampleClass()
{
}
public void FuncA(int n)
{
//irrelevant code here
}
public void FuncB(int n)
{
//other irrelevant code here
}
}
我希望能够像这样使用这个类
ExampleClass excl = new ExampleClass() { Do = FuncA }
或者
ExampleClass excl = new ExampleClass() { Do = excl.FuncA }
或者
ExampleClass excl = new ExampleClass() { Do = ExampleClass.FuncA }
我可以在那里编译第二个选项,但是"Delegate to an instance method cannot have null 'this'."
当我点击该代码时出现异常。第三个甚至没有意义,因为 FuncA 不是静态的。
在我的实际代码中,它可能会绑定 10-15 个不同的函数,我可以随时添加或删除它们,所以我不想有一个大的 switch 或 it-else 语句. 此外,在实例化类时能够为“Do”分配一个值非常方便。
我只是使用了不正确的语法吗?有没有更好的方法来创建一个类并在一行中分配一个动作?我应该直接管理并管理一个巨大的 switch 语句吗?