本文主要介绍.NET(C#)中,C# 10.0的新的命令空间(namespace)定义的新写法,以及命名空间定义的提示警告的配置方法。

1、C# 10中命令空间(namespace)定义

1)之前的写法

namespace SampleCode
{
public class MyClass
{
}
}

2)新的写法

namespace SampleCode;
public class MyClass
{
}

2、命名空间定义的警告配置

有可能改成新写法定义命名空间,会提示警告信息:IDE0160: Convert to block scoped namespace。解决这个问题我们可以修改.editorconfig中的配置解决。vs2019和vs2022都支持在项目中加入一个.editorconfig的文件来统一处理代码的样式风格,命名风格等问题。

1)需要强制使用C# 10之前的写法

.editorconfig中改成配置如下:

# IDE0160: Convert to block-scoped namespace
csharp_style_namespace_declarations = block_scoped:warning

2)需要强制使用C# 10的新写法

.editorconfig中改成配置如下:

# IDE0160: Convert to file-scoped namespace
csharp_style_namespace_declarations = file_scoped:warning

3、Jetbrain Rider中的配置

参考文档https://www.jetbrains.com/help/rider/Using_EditorConfig.html

1).editorconfig中配置

csharp_style_namespace_declarations = file_scoped
dotnet_diagnostic.IDE0161.severity = error

2)CSProj项目文件的中配置

<PropertyGroup>
  <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>