无法从静态方法调用函数

时间:2011-09-14 14:23:52

标签: c# console-application

好吧,这可能听起来像一个非常新手的问题。我真的很惊讶我在问它。我似乎无法记住如何从static void Main()

内部调用函数
namespace myNameSpace
{
    class Program
    {
         static void Main()
         {
              Run(); // I receive an error here.
              Console.ReadLine();
         }
         void Run()
         {
              Console.WriteLine("Hello World!");
         }
    }
}

错误:

  

非静态字段,方法或属性'myNameSpace.Program.Run()'

需要对象引用

6 个答案:

答案 0 :(得分:7)

您需要使Run成为static方法,或者需要一个对象实例来调用Run()。所以你的选择是:

1。)使用实例:

new Program().Run();

2。)使Run()静态:

static void Run()
{
   /..
}

答案 1 :(得分:5)

将您的Run()方法声明为静态:

static void Run()
{
   Console.WriteLine("Hello World!");
}

答案 2 :(得分:2)

让方法静态:static void Run()

答案 3 :(得分:2)

Run()也必须是静态的,或者您需要创建对象的新实例,如new Program().Run();

答案 4 :(得分:0)

导致静态功能与实例无关。而非静态函数必须有一个实例 所以你必须创建一个新实例(你想要的每种方式),然后调用函数。

答案 5 :(得分:0)

另一种方法是将Run()方法封装在嵌套类中并调用它。

        static void Main(string[] args)
    {
        new NestedClass().Run();
    }

    class NestedClass
    {
        public void Run()
        { 
        }
    }
相关问题