当前位置: 首页 > news >正文

.NET 10 C# 14 New Features 新增功能介绍-再看Top Level Program

上篇文章给大家分享了

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

今天又看了一遍Top Level Program顶级程序/语句。这个很早就支持了,给大家做个分享。

顶级语句允许直接在文件的根目录中编写可执行代码,而无需在类或方法中包装代码。

无需使用 Program 类和 Main 方法即可创建程序。 在这种情况下,编译器将使用入口点方法为应用程序生成 Program 类。 生成方法的名称不是 Main,而是你的代码无法直接引用的实现详细信息。

下面是一个 Program.cs 文件,该文件是完整的 C# 程序:

 Console.WriteLine("Hello World!");

借助顶级语句,可以编写简单的程序应用。 方便初次接触 C# 的程序员能够更轻松地开始学习和编写代码。

以下各节介绍了可对顶级语句执行和不能执行的操作的规则。

1. 只有一个包含顶级语句的文件

一个应用程序只能有一个入口点。 一个项目只能有一个包含顶级语句的文件。 在项目中的多个文件中放置顶级语句会导致以下编译器错误:

CS8802:只有一个编译单元可具有顶级语句。

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

2. 没有其他入口

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

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

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

3. 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中。

4. 命名空间和类型定义

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

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!");}}
}

5. args入参

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

if (args.Length > 0)
{foreach (var arg in args){Console.WriteLine($"Argument={arg}");}
}
else
{Console.WriteLine("No arguments");
}

6. await异步调用

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

Console.Write("Hello ");
await Task.Delay(5000);
Console.WriteLine("World!");

7. 隐式入口方法

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

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

image

 

以上,总结分享给大家。

 

周国庆

20220226

 

 

 

http://www.jsqmd.com/news/413250/

相关文章:

  • 2026年比较好的食堂油烟管道清洗/油烟管道清洗厂家推荐及选购指南 - 行业平台推荐
  • 2026年靠谱的破碎机配套棒条给料机/多缸液压圆锥破碎机厂家选购指南与推荐 - 行业平台推荐
  • 互联网大厂Java求职面试实战:涵盖Spring Boot、微服务、消息队列与AI技术解析
  • 读人工智能全球格局:未来趋势与中国位势16中国之路
  • 2026年靠谱的进口报关贸易/进口报关清关行哪家便宜源头直供参考(真实参考) - 行业平台推荐
  • 写作压力小了!8个降AIGC软件测评:继续教育降AI率必备工具推荐
  • 第218-219天:-应急响应篇近源攻击Docker镜像容器分析Dockfile路径定位基线扫描
  • 2026年评价高的酒店油烟机清洗/饭店油烟机清洗厂家推荐及选择指南 - 行业平台推荐
  • 3C 电子电爪品牌怎么选?2026 优质3c电子电爪品牌与选型要点推荐 - 品牌2025
  • 告别熬夜做PPT!宝藏模板网站推荐:职场人/学生党高效出片指南 - 品牌测评鉴赏家
  • 2026年口碑好的娱乐场所检测/室内环境检测优质供应商推荐(信赖) - 行业平台推荐
  • 2026年知名的文创包装设计/零食包装设计直销厂家采购指南如何选 - 行业平台推荐
  • 2026爆款AI PPT生成工具推荐:15分钟搞定专业演示! - 品牌测评鉴赏家
  • 设置压缩率进行压缩
  • 2026年口碑好的养猪场除臭设备/养殖除臭高评分品牌推荐(畅销) - 行业平台推荐
  • 2026实测|3款AI PPT生成工具推荐,技术人避坑指南+痛点解决 - 品牌测评鉴赏家
  • 学霸同款 10个降AI率软件降AIGC网站深度测评,研究生必看的降AI率工具推荐
  • 2026年口碑好的物流园工程总承包/能源电站工程总承包制造厂家推荐哪家靠谱 - 品牌宣传支持者
  • 打工人救星!几款AI PPT生成工具大揭秘 - 品牌测评鉴赏家
  • 2026年靠谱的高活性金属熔炼坩埚用二硼化钛粉体/锂电级二硼化钛粉体高口碑厂家推荐(评价高) - 品牌宣传支持者
  • AI博主实测|4个宝藏PPT生成网站,小白也能秒出专业级演示文稿 - 品牌测评鉴赏家
  • 2026年热门的高铁站公共场所检测/娱乐公共场所检测哪家靠谱公司口碑推荐(畅销) - 品牌宣传支持者
  • 2026爆款PPT生成工具大盘点:告别熬夜排版,小白也能秒变设计大神 - 品牌测评鉴赏家
  • 建站三步曲:从零开始搭建一个成功网站的完整指南
  • 2026年专业的精密无缝钢管/传动轴钢管厂家选购全指南(完整版) - 品牌宣传支持者
  • 实测3款AI自动生成PPT工具|聚焦百度文库,痛点+避坑全解析 - 品牌测评鉴赏家
  • 超越“黑箱”:深度模型解释性组件的架构、实现与前沿实践
  • rclone 完整使用教程
  • AI博主亲测|2026最新PPT生成工具排行榜,新手10分钟出专业稿(无广纯干货) - 品牌测评鉴赏家
  • 2026年知名的BIPV屋面改造/BIPV光伏支架高口碑厂家推荐(评价高) - 品牌宣传支持者