.NET 10 & C# 14 New Features 新增功能介绍-扩展成员Extension Members

项目可以有任意数量的没有顶级语句的源代码文件。

  1. 没有其他入口

可以显式编写方法 Main ,但它不能用作入口点。 编译器将发出以下警告:

CS7022:程序的入口点是全局代码;忽略"Main()"入口点。

在具有顶级语句的项目中,不能使用 -main 编译器选项来选择入口点,即使该项目具有一个或多个 Main 方法。

  1. using引用

对于包含顶级语句的单个文件, using 指令必须首先出现在该文件中,如以下示例所示:

复制代码
using System.Text;

StringBuilder builder = new();
builder.AppendLine("The following arguments are passed:");

foreach (var arg in args)
{
    builder.AppendLine($"Argument={arg}");
}

Console.WriteLine(builder.ToString());

return 0;

同时,顶级语句隐式位于全局命名空间Global using中。

  1. 命名空间和类型定义

具有顶级语句的文件还可以包含命名空间和类型定义,但它们必须位于顶级语句之后。 例如:

复制代码
MyClass.TestMethod();
MyNamespace.MyClass.MyMethod();

public class MyClass
{
    public static void TestMethod()
    {
        Console.WriteLine("Hello World!");
    }
}

namespace MyNamespace
{
    class MyClass
    {
        public static void MyMethod()
        {
            Console.WriteLine("Hello World from MyNamespace.MyClass.MyMethod!");
        }
    }
}
  1. args入参

顶级语句可以引用 args 变量来访问输入的任何命令行参数。 args 变量永远不会为 null,但如果未提供任何命令行参数,则其 Length 将为零。 例如

复制代码
if (args.Length > 0)
{
    foreach (var arg in args)
    {
        Console.WriteLine($"Argument={arg}");
    }
}
else
{
    Console.WriteLine("No arguments");
}
  1. await异步调用

调用 await 来执行异步方法。 例如:

复制代码
Console.Write("Hello ");
await Task.Delay(5000);
Console.WriteLine("World!");
  1. 隐式入口方法

编译器会生成一个方法,作为具有顶级语句的项目的程序入口点。 方法的签名取决于顶级语句是包含 await 关键字还是 return 语句。

下表显示了方法签名的外观,使用表中的方法名称 Main 来方便起见。

相关推荐
czhc11400756636 分钟前
一张图从哪来,一个判断往哪走
c#
智购科技无人售货机工厂店6 分钟前
玻璃瓶饮料破损率突然上升,排查发现是取货口缓冲垫老化了~YH
java·开发语言·人工智能·python·eclipse
枫叶丹416 分钟前
语音 AI 怎样边听边答:实时对话系统的工作原理
开发语言·人工智能·chatgpt·开源·php·agent·codex
xie0510_24 分钟前
Any类简要实现
开发语言·c++·算法
小狼Solar28 分钟前
SAP MDG 功能范围说明(基于S/4HANA 2025)
java·开发语言
kimnoic28 分钟前
Python常用标准库模块及查询使用方法
开发语言·python
知识分享小能手43 分钟前
C学习教程,从入门到精通,C语言输入和输出(4)
c语言·开发语言·学习
道尔柯南44 分钟前
C++ 入门基础详解:从第一个程序到核心语法特性
开发语言·c++
盛世宏博智慧档案1 小时前
Modbus TCP+PoE以太网温湿度传感器项目部署全流程,附网络调试实操
开发语言·tcp/ip·php·以太网·传感器·温湿度
ACP广源盛139246256731 小时前
Type-C 扩展坞方案选型笔记|国产 DP1.2 转 HDMI2.0 桥接芯片 GSV2201D@ACP 评估
开发语言·笔记·硬件架构·硬件工程·hdmi·国产芯片