没有main方法的C#类

我正在学习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(); } } 

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

并非所有类都需要Main方法。

作为MSDN国家

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

C#程序中只能有一个入口点。 如果您有多个具有Main方法的类,则必须使用/ 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; } } 

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

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

在这种情况下,您的代码中至少需要一个包含Main方法的类。 其他类不需要Main方法。

没有Main()的C#类意味着,您可以将其编译为库(.dll)csc / target:库YourClassFileName.cs或csc / t:库YourClassFileName.cs使其成为YourClassFileName.dll文件,然后您可以使用它在另一个具有Main()方法的类文件中(入口点)

csc /reference:YourClassFileName.cs YourMainClassFileName.cs或csc /r:YourClassFileName.cs YourMainClassFileName.cs

制作YourMainClassFileName.exe文件

C#程序中的static void main(string[] args)方法是执行的起点。 如果您尝试编译单个C#文件,编译器将找到此方法以开始执行。 您不需要在用作模型的类中创建方法,但是您必须在控制台程序,WinForms等上使用此方法…

C# 应用程序必须至少有一个带有Main方法的类,以便可以从它开始执行。 应用程序可以有很多类,但只需要一个只有一个Main方法的类。

C# 不必具有Main方法。

如果这是一个控制台应用程序,则需要一个Main方法来开始。 否则(例如,Web应用程序),您不需要一个。

尝试使用/t:library开关和编译器。 默认情况下,它会尝试创建一个.exe ,当然,它需要一个入口点(即main方法)。 如果编译为.dll ,则不需要。

但正如HighCore建议的那样,如果你正在学习,只需使用Visual Studio(如果你还没有下载其中一个免费版本)并让它担心编译器标志。

构建可执行程序集(.exe)时只需要一个main方法,并且只需要在一个类中使用它。 此方法将是执行开始的默认入口点。 将代码构建为类库(.dll)时,不需要main方法。

只有一个类有一种方法应该没问题。 如果需要,可以在设置中在visual studio中设置启动对象。