IT之家 2 月 12 日消息 , 据微软中国 MSDN , 宣布 C# 10 作为 .NET 6 和 Visual Studio 2022 的一部分已经发布了 。 在这篇文章中 , 微软将介绍 C# 10 的许多新功能 , 这些功能使你的代码更漂亮、更具表现力、更快 。
文章图片
阅读 Visual Studio 2022 公告和.NET 6 公告以了解更多信息 , 包括如何安装 。
Visual Studio 2022 公告
https://aka.ms/vs2022gablog
.NET 6
https://aka.ms/dotnet6-GA
全局和隐式 usings
using 指令简化了你使用命名空间的方式 。 C# 10 包括一个新的全局 using 指令和隐式 usings , 以减少你需要在每个文件顶部指定的 usings 数量 。
全局 using 指令
如果关键字 global 出现在 using 指令之前 , 则 using 适用于整个项目:
global using System;
你可以在全局 using 指令中使用 using 的任何功能 。 例如 , 添加静态导入类型并使该类型的成员和嵌套类型在整个项目中可用 。 如果你在 using 指令中使用别名 , 该别名也会影响你的整个项目:
global using static System.Console; global using Env = System.Environment;
你可以将全局使用放在任何 .cs 文件中 , 包括 Program.cs 或专门命名的文件 , 如 globalusings.cs 。 全局 usings 的范围是当前编译 , 一般对应当前项目 。
有关详细信息 , 请参阅全局 using 指令 。
全局 using 指令
https://docs.microsoft.com/dotnet/csharp/languagereference/keywords/using-directive#global-modifier
隐式 usings
隐式 usings 功能会自动为你正在构建的项目类型添加通用的全局 using 指令 。 要启用隐式 usings , 请在 .csproj 文件中设置 ImplicitUsings 属性:
enable
在新的 .NET 6 模板中启用了隐式 usings。 在此博客文章中阅读有关 .NET 6 模板更改的更多信息 。
一些特定全局 using 指令集取决于你正在构建的应用程序的类型 。 例如 , 控制台应用程序或类库的隐式 usings 不同于 ASP.NET 应用程序的隐式 usings 。
有关详细信息 , 请参阅此隐式 usings 文章 。
博客文章
https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-7/#net-sdk-c-project-templates-modernized
隐式 usings
https://docs.microsoft.com/en-us/dotnet/core/project-sdk/overview#implicit-using-directives
Combining using 功能
文件顶部的传统 using 指令、全局 using 指令和隐式 using 可以很好地协同工作 。 隐式 using 允许你在项目文件中包含适合你正在构建的项目类型的 .NET 命名空间 。 全局 using 指令允许你包含其他命名空间 , 以使它们在整个项目中可用 。 代码文件顶部的 using 指令允许你包含项目中仅少数文件使用的命名空间 。
无论它们是如何定义的 , 额外的 using 指令都会增加名称解析中出现歧义的可能性 。 如果遇到这种情况 , 请考虑添加别名或减少要导入的命名空间的数量 。 例如 , 你可以将全局 using 指令替换为文件子集顶部的显式 using 指令 。
如果你需要删除通过隐式 usings 包含的命名空间 , 你可以在项目文件中指定它们:
你还可以添加命名空间 , 就像它们是全局 using 指令一样 , 你可以将 Using 项添加到项目文件中 , 例如:
文件范围的命名空间
许多文件包含单个命名空间的代码 。 从 C# 10 开始 , 你可以将命名空间作为语句包含在内 , 后跟分号且不带花括号:
namespace MyCompany.MyNamespace; class MyClass // Note: no indentation { ... }
他简化了代码并删除了嵌套级别 。 只允许一个文件范围的命名空间声明 , 并且它必须在声明任何类型之前出现 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
