如何在我的 Visual Studio Code c# 项目中设置默认的 c# 文件?

How do I set the default c# file in my Visual Studio Code c# Project?

我刚开始使用 Visual Studio 代码。我一直在Windows中使用Visual StudioIDE。我正在尝试 运行 使用 VS Code 在 Mac 上创建一个简单的 Hello World 程序。我运行以下命令

dotnet new console

成功创建了 csProj 文件和 Program.cs 文件,代码为 Console.WriteLine("Hello, World!"); 现在,通过发出 dotnet 运行 命令,我也可以从该程序中获取输出。 但是我在同一项目位置有一个名为“Hello.cs”的不同 cs 文件。如何将 Hello.cs 改为 运行 而不是 Program.cs” =13=] 命令。 我尝试在 .csproj 文件中提供以下 属性 组,但 ​​VS Code 报告错误这是保留的 属性.

<PropertyGroup><StartupObject>Hello.HelloWorld</StartupObject></PropertyGroup>

如果您的项目中有多个 CS 文件,是否还有另一种选择默认启动 CS 文件的方法。

您的应用程序的入口点将是项目默认命名空间中名为 Main() 的方法。如果你想改变入口点,你可以重命名你的方法,但更好的方法是简单地从 "Hello.cs"[=16 调用你想要 运行 的代码=] 在你的 Main() 方法中 "Program.cs."

使用 C# 9 Top-level 语句功能,您只能有一个入口点。所以你不需要 select 默认入口点。如果您想使用此功能,请从其他文件和其他 top-level 文件中删除所有 Main 方法。

Read more about Top-level statements...

dotnet new console command creates a new C# Console Project based on C# 10.0 . This creates a Program.cs file that has something called as a Top Level Statement without a main method. as shown below:

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

请注意,这没有默认的 Main() 方法,该方法通常是 CS 控制台应用程序项目的起始入口点 在我的 csProject 的 .cs 文件中引入此语句后,我创建并声明由 Main() 方法 定义的经典入口点的任何其他 cs 文件将被忽略为了入口点。 <<== 这是一个非常重要的理解点。

我的 Hello.cs 文件有以下代码:

public static void Main()
    {
        Console.WriteLine("Hello World1");
    }

这被 C# 10.0 编译器忽略了。 [从 C# 9.0 开始,这是行为]。 https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/program-structure/top-level-statements

现在,要使我的 Hello.CS Main() 方法成为我的 C# 控制台项目的入口点,我所要做的就是摆脱 [=13= 自动创建的默认顶级入口点]命令。

现在我在 Program.cs 文件中注释掉了这一行

//Console.WriteLine("Hello, World!");

重新运行我的项目 [Command+Shift+D] 瞧!我正在执行 Hello.cs 中的代码。