如何在顶级语句之后定义方法

How to define a method following top-level statements

我最近更新了 Visual Studio 并发现了顶级语句的这个新功能(对我来说是新功能)。

据我了解,编译器会完成 Program class 和 Main 方法的定义,而无需您显式键入它。

这很有用,但我在定义新方法时遇到了问题。我想要一个方法在Programclass。并用顶级语句调用它。这是一些示例代码:

Console.WriteLine("toplevel");
ThisShouldBeAMethodOfProgramClass();

public static void ThisShouldBeAMethodOfProgramClass()
{
    Console.WriteLine("Static in Program class");
}

这给我构建错误,因为 public 静态修饰符无效。我认为它将此解释为 Main 中的局部函数。我可以删除修饰符,但这只是示例代码,我的真实代码有更多方法和 classes.

我该怎么做?我不应该为此使用顶级吗?

我希望这实际上与以下内容相同:

class Program
{
    public static void Main(string[] args)
    {
        Console.WriteLine("toplevel");
        ThisShouldBeAMethodOfProgramClass();
    }
    public static void ThisShouldBeAMethodOfProgramClass()
    {
        Console.WriteLine("Static in Program class");
    }
}

您可以继续使用 top-level 语句并使用部分程序追加其他成员 class。

using System;
Console.WriteLine("toplevel");
ThisShouldBeAMethodOfProgramClass();

public static partial class Program
{
    public static void ThisShouldBeAMethodOfProgramClass()
    {
        Console.WriteLine("Static in Program class");
    }
}