gpt4 book ai didi

c# - 是否可以创建委托(delegate)而不必将其设为静态?

转载 作者:行者123 更新时间:2023-11-30 22:07:02 25 4
gpt4 key购买 nike

我想在下面的类中创建一个简单的委托(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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com