C#中如何从类静态方法调用全局静态方法?

问题描述 投票:0回答:1

以下程序在 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 验证)。

有没有办法从类方法内部访问“全局范围静态方法”?或者这根本不可能?

c# methods static global class-method
1个回答
1
投票

但是,如果我将 SayHello 方法设为“全局静态”

问题是你没有以任何方式将其设为全局,而是将其设为Program.$Main方法的

本地函数
,该方法将为顶级语句

生成
Module2.SayHelloDouble();
static void SayHello()
        => Console.WriteLine("Hello!");

顶级语句是 C# 9 引入的一项功能,它允许跳过

Main
方法声明的一些样板代码,并让编译器为您完成。

© www.soinside.com 2019 - 2024. All rights reserved.