使用委托在程序 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;