文件作用域命名空间——c# 10的新语言特性
欢迎来到我们系列的第一部分,在这里我们将仔细观察新的c#语言特性以及ReSharper和Rider是如何在你的代码库中轻松地采用它们的。欢迎使用c# 10和。net 6!
在本系列中,我们将探讨:
- File-Scoped名称空间
- 调用参数表达式
- 全球Usings
- 插入字符串的改进
- λ的改进
- 还有更多的消息要宣布
在这篇文章中,我们将讨论如何开始在项目中使用c# 10,并深入讨论文件作用域的名称空间。玩得开心,享受惊喜!
如何开始使用c# 10
首先,你需要net 6.0预览版已安装在您的机器上。一旦安装,您可以更新语言版本你的项目。在《莱德》中,我们可以做到这一点从项目属性对话框:
或者,你可以点击Alt + Enter在任何编译器错误和执行应急的:
或手动更新你的项目文件如下:
<项目Sdk = " Microsoft.NET。Sdk">Exe net6.0 preview
File-Scoped名称空间
大多数人可能会确认,他们的c#文件只包含一个名称空间声明:
命名空间ConsoleApp {class utility{} //其他类型}
新file-scoped名称空间允许你在不使用block的情况下为整个文件声明它们:
名称空间ConsoleApp;class Utility{} //其他类型
这真的是一个房地产储蓄者因为您不再需要对文件中的整个类型声明应用浪费的缩进。如果你一直在使用一个习惯缩进的大小(通常为2空格)代码样式|制表符,缩进,对齐或禁用的在命名空间声明内缩进设置下代码样式|大括号布局,您现在可以回到语言默认设置。
ReSharper和Rider允许无缝转换到文件作用域的名称空间.从单个块作用域命名空间声明中,您可以选择切换文件、项目或整个解决方案的样式:
记住:你可以用git - w指责
忽略批量格式化提交时的空格更改。Rider在其Git注释操作中默认使用该开关。
为了达到一致性,下面有一个新的代码样式设置代码编辑| c# |语法样式|代码体选择你的喜好和违反的严重程度。这很有用,例如,当您转换了主分支,但希望合并一个仍然使用块作用域名称空间的分支时。
记住:代码样式最好保存在团队与大家分享设置层.
如果你已经定义了自定义文件模板,有一个非常好的消息:现有模板的文件作用域已经就绪.这意味着ReSharper和Rider会根据你的代码样式设置自动转换声明。同时,当创建具有文件作用域命名空间的新模板时,它们会在需要时被转换回块作用域:
当我们谈到文件作用域的名称空间时,你们中的一些人可能会想起包的头在Java和Kotlin。与它们的对应对象不同,c#中的文件作用域命名空间是不需要出现在文件的顶部,意思是在他们之前允许有使用
指令.我们希望大多数开发人员更喜欢在类型声明之前使用它们,但是您可以使用现有的配置在最深的范围内添加' using '指令设置下代码样式|语法样式选项:
下载ReSharper 2021.3 EAP或者看看骑手2021.3 EAP开始以最好的方式利用c# 10。我们很想听听你的想法!