使用委托在程序 class 中找不到在不同 class 中定义的方法
Method defined in different class not found in program class using delegate
我已将以下 class 添加到我的项目中
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;
}
}
}
并且在我的程序 class 的主要方法下,我试图创建一个委托对象并将方法 AddNum 分配给它:
NumberChanger nc1 = new NumberChanger(AddNum);
但是在此 class 中无法识别 AddNum 方法,我收到错误消息:CS0103 C# 该名称在当前上下文中不存在
谁能看出我做错了什么?
在另一个 class 中引用静态方法时需要引用 class。因此,从(我推测)Program.Main
,你应该引用 Testdelegate.AddNum
。编辑:这假定您在文件顶部有一个 using lesson02;
引用,或者 Program
存在于 lesson02
或嵌套命名空间中。
或者,如果您多次引用静态 Testdelegate
成员,您可以使用 static using
(从 C# 6 开始):
using static lesson02.Testdelegate;
我已将以下 class 添加到我的项目中
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;
}
}
}
并且在我的程序 class 的主要方法下,我试图创建一个委托对象并将方法 AddNum 分配给它:
NumberChanger nc1 = new NumberChanger(AddNum);
但是在此 class 中无法识别 AddNum 方法,我收到错误消息:CS0103 C# 该名称在当前上下文中不存在
谁能看出我做错了什么?
在另一个 class 中引用静态方法时需要引用 class。因此,从(我推测)Program.Main
,你应该引用 Testdelegate.AddNum
。编辑:这假定您在文件顶部有一个 using lesson02;
引用,或者 Program
存在于 lesson02
或嵌套命名空间中。
或者,如果您多次引用静态 Testdelegate
成员,您可以使用 static using
(从 C# 6 开始):
using static lesson02.Testdelegate;