作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在下面的类中创建一个简单的委托(delegate)。我不希望我试图为其创建委托(delegate)的方法是静态的。我创建了类 A 的一个实例,然后尝试使用该变量来启动我的方法,但我仍然收到错误。
问题:如何创建一个委托(delegate),而不必将方法设为静态方法?
代码:
public class A : System.Object
{
A a = new A();
public delegate void myMethod(int SomeInt);
myMethod Temp = a.add;
public void add(int a)
{
}
public virtual void DoTest()
{
}
}
错误:
Error 6 A field initializer cannot reference the non-static field, method, or property 'FlowControl.A.a' C:\Users\itpr13266\AppData\Local\Temporary Projects\FlowControl\Program.cs 170 25 FlowControl
最佳答案
你不需要使它是静态的。只需在你的构造函数中这样做:
myMethod Temp = a.add;
喜欢:
private myMethod Temp;
public A()
{
Temp = a.add;
}
关于c# - 是否可以创建委托(delegate)而不必将其设为静态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23227324/
由“CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", ES_MULTILINE.."创建的文本框需要\r\n 换行。我将我的 stdoutput 重定向到那个文
我是一名优秀的程序员,十分优秀!