gpt4 book ai didi

c# - 使用委托(delegate)在程序类中找不到在不同类中定义的方法

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:58 25 4
gpt4 key购买 nike

我已将以下类添加到我的项目中

delegate int NumberChanger(int n);

namespace lesson02
{
class Testdelegate
{
static int num = 10;
public static int AddNum(int p)
{
num += p;
return num;
}

public static int MultNum(int q)
{
num *= q;
return num;
}

public static int getNum()
{
return num;
}
}
}

在我的程序类的 main 方法下,我试图创建一个委托(delegate)对象并将方法 AddNum 分配给它:

NumberChanger nc1 = new NumberChanger(AddNum);

但 AddNum 方法在此类中无法识别,我收到错误消息:CS0103 C# The name does not exist in the current context

谁能看出我做错了什么?

最佳答案

在引用不同类中的静态方法时需要引用该类。因此,从(我推测)Program.Main,您应该引用 Testdelegate.AddNum。编辑:这假定您在文件顶部有一个 using lesson02; 引用,或者 program 存在于 lesson02 或嵌套命名空间中。

或者,如果您多次引用静态 Testdelegate 成员,您可以使用 static using(从 C# 6 开始):

using static lesson02.Testdelegate;

关于c# - 使用委托(delegate)在程序类中找不到在不同类中定义的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36939975/

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