没有main方法的C#类

Blu*_*ire 10 c# program-entry-point class

我正在学习C#而且我对它很新,请原谅我这个看似愚蠢的问题.我有一些Java经验,我注意到C#程序main()在主类中也需要一个方法.

如果我想创建一个不是主类的类,即我导入主类的类,该怎么办?

我试图这样做,当我编译(通过cmd使用csc File.cs)时,编译器说它将生成的.exe没有main()方法.这是否意味着我错了,每个班级都需要一个main()方法,或者我错误地编译它?

也许是代码中的问题(因为我依赖于我对Java语法的了解),看起来像这样:

public class Class
{
    int stuff;
    public Class(int stuff)
    {
        this.stuff = stuff;
        stuff();
    }
    public void method()
    {
        stuff();
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:我担心这是非常误解的.我不是在问这个文件是否需要一个main方法,我问我怎样才能把这个类导入到另一个类中,因为我意识到如果我要这样做我就不能有一个main(就像我说的那样,我有一些Java经验),但每当我尝试编译没有一个编译器告诉我,我需要一个.

PaR*_*RaJ 23


并非所有课程都需要Main方法.

作为MSDN国家

Main方法是C#控制台应用程序或Windows应用程序的入口点.(库和服务不需要Main方法作为入口点.).启动应用程序时,Main方法是第一个被调用的方法.

C#程序中只能有一个入口点.如果您有多个具有Main方法的类,则必须使用/ main编译器选项编译程序,以指定要用作入口点的Main方法.


只有一个类需要保留Main方法,该类充当应用程序的入口点.

主要方法的签名是:static void Main(string[] args)static void Main()或.static int Main(string[] args)static int Main()

看看这个链接查看更多细节:Main() and Command-Line Arguments (C# Programming Guide)


对于上面的例子:

public class MyClassName // changed the class name, avoid using the reserved keyword :P
{
    int stuff;
    public MyClassName(int stuff)  // is the constructor
    {
        this.stuff = stuff;
    }
    public void method()
    {
        stuff = 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果需要使用该类,可以使用main方法创建静态类:

class ProgramEntry
{
    static void Main(string[] args)
    {
        MyClassName classInstance = new MyClassName(2);
        classInstance.method();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我不是downvoter(事实上,我是upvoted),但我建议拼写你的话.即,而不是使用'你',拼写它'你'.即使你不关心正确的语法,这也会产生一个更易于搜索的答案. (9认同)
  • 或`static int Main(string[] args)` (2认同)