gpt4 book ai didi

没有 main 方法的 C# 类

转载 作者:行者123 更新时间:2023-12-02 14:30:54 29 4
gpt4 key购买 nike

我正在学习 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 经验),但每当我尝试在没有 Java 的情况下进行编译时,编译器都会告诉我需要一个。

最佳答案


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

正如 MSDN 所说

The Main method is the entry point of a C# console application orwindows application. (Libraries and services do not require a Mainmethod as an entry point.). When the application is started, the Mainmethod is the first method that is invoked.

There can only be one entry point in a C# program. If you have morethan one class that has a Main method, you must compile your programwith the /main compiler option to specify which Main method to use asthe entry point.

<小时/>

只有一个类需要保留 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();
}
}
<小时/>

C# 9开始,引入了不使用 Main 方法的程序选项。现在,您可以直接在类外部的文件中编写代码,而不必声明 Main 方法。欲了解更多详情,请参阅Top-level statements - programs without Main methods .

关于没有 main 方法的 C# 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14688756/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com