以下程序在 C# 的最新版本中编译和执行得很好,其中不需要 Main 函数:
Module2.SayHelloDouble();
static class Module1
{
public static void SayHello()
=> Console.WriteLine("Hello!");
}
static class Module2
{
public static void SayHelloDouble()
{
Module1.SayHello();
Module1.SayHello();
}
}
但是,如果我将
SayHello
方法设置为“全局静态”,程序将不再编译(使用 C# 12 / NET 8 验证)。
有没有办法从类方法内部访问“全局范围静态方法”?或者这根本不可能?
但是,如果我将 SayHello 方法设为“全局静态”
问题是你没有以任何方式将其设为全局,而是将其设为Program.$Main
方法的
本地函数,该方法将为顶级语句:生成
Module2.SayHelloDouble();
static void SayHello()
=> Console.WriteLine("Hello!");
顶级语句是 C# 9 引入的一项功能,它允许跳过
Main
方法声明的一些样板代码,并让编译器为您完成。