我正在学习 C#,而且对它很陌生,所以请原谅我提出这个看似愚蠢的问题。我有一些 Java 经验,我注意到 C# 程序也需要一个main()
他们的主类中的方法。
如果我想创建一个不是主类的类,即导入到主类中的类,该怎么办?
我尝试这样做,当我编译时(通过 cmd 使用csc File.cs
)编译器说它将生成的 .exe 没有main()
方法。这是否意味着我错了?every类需要一个main()
方法,还是我编译错误?
也许问题出在代码中(因为我依赖于我对 Java 语法的了解),代码如下:
public class Class
{
int stuff;
public Class(int stuff)
{
this.stuff = stuff;
stuff();
}
public void method()
{
stuff();
}
}
EDIT:恐怕这被严重误解了。我不是在问该文件是否需要一个 main 方法,而是在问如何将这个类导入到另一个类中,因为我意识到,如果我要这样做,我就不能有一个 main 方法(正如我所说,我有一些 Java 经验),但每当我尝试在没有 Java 的情况下进行编译时,编译器都会告诉我需要一个。
##Not all classes need `Main` method.
正如 MSDN 所说
Main 方法是 C# 控制台应用程序的入口点或
窗口应用程序。 (图书馆和服务不需要主
方法作为入口点。)。当应用程序启动时,主
method 是第一个被调用的方法。
C# 程序中只能有一个入口点。如果你还有更多
除了一个具有 Main 方法的类之外,您还必须编译您的程序
使用 /main 编译器选项来指定使用哪个 Main 方法
入口点。
只有一个类需要保留Main
方法,充当应用程序入口点的类。
主要方法的签名是:static void Main(string[] args)
or static void Main()
or static int Main(string[] args)
or 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();
}
}
开始C# 9引入了没有 Main 方法的程序选项。现在,您可以直接在类外部的文件中编写代码,而不必声明 Main 方法。欲了解更多详情,请参阅顶级语句 - 没有 Main 方法的程序.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)