前言
编码风格,每个人都是有不同的特点,风格各异,而且一个人在不同的时期,编码风格的差异也可能是非常大的,好比学生时代,刚工作的时候,工作一段时间后等。
在一个团队中,或一个项目中,如果出现了N种风格,这个可能就是比较头疼了,尤其是风格差异很大的时候。
一个项目一种风格或许还可以接受,如果一个项目风格都不一样,那就有点难受了,就更不用说整个团队的了。长久来看,团队之间,难免会有人员的调动,所以统一整个团队的编码风格还是很有必要的。
统一了编码风格会带来什么好处呢?下面列出几点
- 便于代码审查
- 新人(新同事/跨项目组同事)接手不会觉得杂乱无章
- ...
下面来先看看本文的重点StyleCop。
什么是StyleCop?
通过Nuget安装StyleCop.Analyzers,或直接在csproj里面加下面的内容。
<ItemGroup> <PackageReference Include="StyleCop.Analyzers" Version="1.1.1-rc.94"> <PrivateAssets>All</PrivateAssets> </PackageReference> </ItemGroup>在回到Program.cs,马上就可以看到有波浪线了~~

这个时候我们需要狠一点,把项目的所有警告级别的提示都当成错误来看待。
<PropertyGroup> <!-- other... --> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> </PropertyGroup>加了这个之后,编译就立马出错了。

在编译不通过时,还是ERROR级别的错,只能乖乖的去改了。
按照提示,一个个修改之后,还是有一个SA0001的错误提示。

要修复这个问题,需要参考这个文档 SA0001.md
启用一下生成XML文档,同时加几个禁止显示的警告即可。
<PropertyGroup> <!-- other... --> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <!-- 加下面2行,处理SA0001 --> <GenerateDocumentationFile>true</GenerateDocumentationFile> <NoWarn>$(NoWarn),1573,1591,1712</NoWarn> </PropertyGroup>这个时候再build,就不会有错误了。

对于这么简单的一个空项目,都有不少要修改的地方,就可以知道,默认的规则是比较严格的。那么我们有没有办法避免应用某些规则呢?答案是肯定的。
我们可以通过添加代码分析规则集来自定义。
有两个方式添加,一个是直接添加新建项;一个是通过修改分析器里面的规则集严重性,修改后会自动生成。

下面我们通过修改两个规则来体验一下。
一个是不想要上面的头部(SA1200),一个是using可以在命名空间外面(SA1633)。
下面是示例代码。
<?xml version="1.0" encoding="utf-8"?> <RuleSet Name="Demo Analyzer Rules" Description="Analyzer rules for Demo."
