代码规范检测-StyleCop使⽤规则
在StyleCop中有⼀些官⽅⾃⼰写好的检测规则下⾯就是英⽂的解释
⽂档规则
1、SA1600:ElementsMustBeDocumented元素必须添加注释
revisions2、SA1601: PartialElementsMustBeDocumented Partial修饰的成员必须添加注释deem是什么意思
3、SA1602:EnumerationItemsMustBeDocumented 枚举必须添加注释
4、SA1603: DocumentationMustContainValidXml 注释必须合法(注释中的关键字不能有错误)
5、SA1604: ElementDocumentationMustHaveSummary 元素注释必须包含Summary关键字
6、SA1605:PartialElementDocumentationMustHaveSummary Partial修饰的成员注释必须包含Summary关键字
7、SA1606:ElementDocumentationMustHaveSummaryText Summary节点内部必须添加⽂本
8、SA1607:PartialElementDocumentationMustHaveSummaryText Partial修饰的成员注释Summary节点内部必须添加⽂本
9、SA1608:ElementDocumentationMustNotHaveDefaultSummary Summary注释不能使⽤编译器⾃带的注释⽂本
10、SA1609:PropertyDocumentationMustHaveValue 属性的注释中必须包含<Value>节点
11、SA1610:PropertyDocumentationMustHaveValueText 属性的注释<Value>节点必须包含⽂本值
12、SA1611:ElementParametersMustBeDocumented 参数必须注释
d a
13、SA1612:ElementParameterDocumentationMustMatchElementParameters 参数的个数必须与注释⾥的个数⼀致
14、SA1613:ElementParameterDocumentationMustDeclareParameterName 参数的注释⾥必须有参数的名称
15、SA1614:ElementParameterDocumentationMustHaveText 参数注释节点⾥不能空着
16、SA1615:ElementReturnValueMustBeDocumented 返回值必须添加注释
17、SA1616:ElementReturnValueDocumentationMustHaveText 返回值注释的节点内必须有⽂本值
18、SA1617:VoidReturnValueMustNotBeDocumented 空返回值⼀定不能有返回值注释
every teardrop is a waterfall19、SA1618:GenericTypeParametersMustBeDocumented ⽣成的类型(泛型)参数必须有注释
20、SA1619:GenericTypeParametersMustBeDocumentedPartialClass SA1618情况如果有Partial类存在都要有注释
21、SA1620:GenericTypeParameterDocumentationMustMatchTypeParameters 注释与泛型必须能匹配上
22、SA1621:GenericTypeParameterDocumentationMustDeclareParameterName 泛型的注释必须包含泛型定义是的关键字
(如’T’)
23、SA1622:GenericTypeParameterDocumentationMustHaveText 泛型的注释节点中必须包含⽂本值
24、SA1623:PropertySummaryDocumentationMustMatchAccessors 属性的注释必须与属性的读写权限匹配,private类型的属
性不能出现在注释⾥
25、SA1624:PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess 属性的注释⾥必须忽略protected关
键字,当成public类型当注释
26、SA1625:ElementDocumentationMustNotBeCopiedAndPasted 各个参数的注解不能完全相同(避免copy、post⾏为)
27、SA1626:SingleLineCommentsMustNotUDocumentationStyleSlashes 单⾏注释不能采取三个斜线的注释⽅式,斜线的个
menuitem数必须是⼆的倍数
28、SA1627:DocumentationTextMustNotBeEmpty 注释节点内部不能为空(必须有⽂本值)
29、SA1628:DocumentationTextMustBeginWithACapitalLetter 注释节点内部的⽂本必须以⼤写字母开头
30、SA1629:DocumentationTextMustEndWithAPeriod 注释节点内部的⽂本必须英⽂的句号结束
31、SA1630:DocumentationTextMustContainWhitespace 注释节点内部的⽂本必须包含空格
32、SA1631:DocumentationMustMeetCharacterPercentage 注释节点内部的⽂本中不能包含过多的字符(举例:包含’------------------
---------------------’是不允许的)
33、SA1632:DocumentationTextMustMeetMinimumCharacterLength 已经作废的规则,不允许有太短的字符串(如’A name’ 中
的A字母)
34、SA1633:FileMustHaveHeader 代码⽂件头部必须有说明,⼀般放置版权信息
35、SA1634:FileHeaderMustShowCopyright 代码⽂件头部注解中必须包含版权关键字
36、SA1635:FileHeaderMustHaveCopyrightText代码⽂件头部注解中必须包含版权信息内同
37、SA1636:FileHeaderCopyrightTextMustMatch 代码⽂件头部注解中版权信息必须与设置画⾯设置的内容相匹配,在”style ting”画⾯的” Company Information tab”进⾏设置
38、SA1637:FileHeaderMustContainFileName 代码⽂件头部注解中必须包含⽂件名称
39、SA1638:FileHeaderFileNameDocumentationMustMatchFileName 代码⽂件头部注解中必须包含⽂件名称必须与实际的名称匹配
40、SA1639:FileHeaderMustHaveSummary 代码⽂件头部注解中必须包含Summary节点
41、SA1640:FileHeaderMustHaveValidCompanyText 代码⽂件头部注解中版权信息必须含有合理的公司名字
42、SA1641:FileHeaderCompanyNameTextMustMatch 代码⽂件头部注解中的公司名字必须与设置画⾯设置的内容相匹配,在”style ting”画⾯的” Company Information tab”进⾏设置
43、SA1642:ConstructorSummaryDocumentationMustBeginWithStandardText 构造函数注释标准:“Initializes a new instance of the <e cref="Customer{T}"/> class.”
44、SA1643:DestructorSummaryDocumentationMustBeginWithStandardText 析构函数注释标准:“Finalizes an instance of the <e cref="Customer"/> class.”
45、SA1644:DocumentationHeadersMustNotContainBlankLines 注释中不能出现空⽩⾏
46、SA1645:IncludedDocumentationFileDoesNotExist 如果注释中包含⽂件,要确定这个⽂件存在,举例:“ /// <include file="l" path="root/EnabledMethodDocs" />” 这⼀项过于复杂不建议⽤,但是如果将来想规范化相同共性东西的注释的时候倒是可以考虑引⼊。
47、SA1646:IncludedDocumentationXPathDoesNotExist 如果注释中包含⽂件,路径不存在。
48、SA1647:IncludeNodeDoesNotContainValidFileAndPath 如果注释中包含⽂件⽂件与路径都要合法
49、SA1648:InheritDocMustBeUdWithInheritingClass 这项不明⽩是什么意思,还请知道的分享给我,谢谢。
50、SA1649:FileHeaderFileNameDocumentationMustMatchTypeName ⽂件头注释必须匹配类型
51、SA1650:ElementDocumentationMustBeSpelledCorrectly 注释不能有拼写错误(对中⽂⽀持不好,不建议使⽤该项)
布局规则
1、 SA1500:CurlyBracketsForMultiLineStatementsMustNotShareLine 花括号不能再同⼀⾏。
标准格式: public StRsvrRFun()
{
}
2、SA1501:StatementMustNotBeOnASingleLine 语句不能共享⼀⾏
3、SA1502:ElementMustNotBeOnASingleLine 语句不能共享⼀⾏
4、SA1503:CurlyBracketsMustNotBeOmitted 花括弧即使在单⾏代码的情况下也不能省略。
5、SA1504:AllAccessorsMustBeSingleLineOrMultiLine 读写属性,要么在同⼀⾏业要么在分多⾏写,不可规则不统⼀(个⼈建议分多⾏写)。
6、SA1505:OpeningCurlyBracketsMustNotBeFollowedByBlankLine 开始的花括弧后⾯不能有空⽩⾏
7、SA1506:ElementDocumentationHeadersMustNotBeFollowedByBlankLine 元素头部注释跟元素之间不能有空⽩⾏
8、SA1507:CodeMustNotContainMultipleBlankLinesInARow 不允许有多⾏空⽩⾏紧挨着(个⼈建议写⼀个空⽩⾏即可)
9、SA1508:ClosingCurlyBracketsMustNotBePrecededByBlankLine 结尾的花括弧不能再⼀个空⽩⾏之前
10、SA1509:OpeningCurlyBracketsMustNotBePrecededByBlankLine 开始的花括弧不能再⼀个空⽩⾏之前
11、SA1510:ChainedStatementBlocksMustNotBePrecededByBlankLine 相连的语句之间不能有空⽩⾏,如try语句与catch语句之间不能有空⽩⾏
12、SA1511:WhileDoFooterMustNotBePrecededByBlankLine 与SA1510相同,Do语句与While语句之间不能有空⽩⾏
13、SA1512:SingleLineCommentsMustNotBeFollowedByBlankLine 单⾏注释不能后跟空⽩⾏
14、SA1513:ClosingCurlyBracketMustBeFollowedByBlankLine 结束花括弧之后必须有⼀个空⽩⾏
15、SA1514:ElementDocumentationHeaderMustBePrecededByBlankLine 头部注解之前必须有⼀个空⽩⾏
16、SA1515:SingleLineCommentMustBePrecededByBlankLine 单⾏注释之前要有⼀个空⽩⾏,还⼀种⽅法是不加空⽩⾏⽽⽤四个斜线注释””,建议采取第⼀种⽅法
17、SA1516:ElementsMustBeSeparatedByBlankLine 邻近的元素之间要有⼀个空⽩⾏
18、SA1517:CodeMustNotContainBlankLinesAtStartOfFile 代码⽂件头部字符之前不能出现空⽩⾏
19、SA1518:CodeMustNotContainBlankLinesAtEndOfFile代码⽂件尾部字符之后不能出现空⽩⾏
可维护规则
1、 SA1119:StatementMustNotUUnnecessaryParenthesis 语句中不可以出现多余的括弧,⽆意义的括弧增加了代码的可读性
2、 SA1400:AccessModifierMustBeDeclared 必须定义访问修饰符
3、 SA1401:FieldsMustBePrivate 字段必须定义为私有的
4、 SA1402:FileMayOnlyContainASingleClass ⼀个CS⽂件⾥只定义⼀个类
5、 SA1403:FileMayOnlyContainASingleNamespace ⼀个CS⽂件只包含⼀个命名空间
6、 SA1404:CodeAnalysisSuppressionMustHaveJustification Suppression特性(取消报告特定的静态分析⼯具规则冲突,允许⼀个代码项⽬上应⽤多个取消报告设置)必须要有合理理由
7、 SA1405:DebugAsrtMustProvideMessageText 参见代码:“Debug.Asrt(value != true, "The value must always be true.");”
8、 SA1406:DebugFailMustProvideMessageText 参见代码:“Debug.Fail("The code should never reach this point.");”
9、 SA1407:ArithmeticExpressionsMustDeclarePrecedence 算数表达式必须⽤明确的标明其优先级(此条与SA1119冲突)
10、 SA1408:ConditionalExpressionsMustDeclarePrecedence 条件表达式必须明确的标明其优先级(此条与SA1119冲突) 举例:“if (x || (y && z && a) || b)”
11、 SA1409:RemoveUnnecessaryCode 移除⽆⽤的代码
12、 SA1410:RemoveDelegateParenthesisWhenPossible 调⽤⼀个c#匿名⽅法不包含任何⽅法参数,必须要包括⼀个空括号(本⼈不建议使⽤匿名⽅法、匿名委托的语法,具体原因后续做分享)
13、 SA1411:AttributeConstructorMustNotUUnnecessaryParenthesis 特性构造函数如果是空参的形式,不要包括那个空括号命名规则
1、 SA1300:ElementMustBeginWithUpperCaLetter ⾸字母必须⼤写(个⼈理解应该是字段以外的东西)
2、 SA1301: ElementMustBeginWithLowerCaLetter 不会出现的情况
3、 SA1302:InterfaceNamesMustBeginWithI 接⼝必须以“I”字母开头
4、 SA1303:ConstFieldNamesMustBeginWithUpperCaLetter Const常量⾸字母⼤写
5、 SA1304:NonPrivateReadonlyFieldsMustBeginWithUpperCaLetter ⾮私有⾮制度的字段必须⾸字母⼤写
6、 SA1305:FieldNamesMustNotUHungarianNotation 除了列表外的字符不可以出现匈⽛利命名规则,在”Style Setting”⾥的”Hungarian”Tab⾥设置
7、 SA1306:FieldNamesMustBeginWithLowerCaLetter 字段名必须⾸字母⼩写
8、 SA1307:AccessibleFieldsMustBeginWithUpperCaLetter public或者internal字段⾸字母⼤写
9、 SA1308:VariableNamesMustNotBePrefixed 变量名不能有前缀
10、 SA1309:FieldNamesMustNotBeginWithUnderscore 字段名不能以下滑线开头
11、 SA1310:FieldNamesMustNotContainUnderscore 字段名不能包括下滑线
12、 SA1311:StaticReadonlyFieldsMustBeginWithUpperCaLetter static与readonly字段⾸字母⼤写
排序规则
均匀是什么意思
1、SA1200:UsingDirectivesMustBePlacedWithinNamespace using部分必须在Namespace内部(个⼈不建议⽤这个规则)
2、SA1201:ElementsMustAppearInTheCorrectOrder 所有的元素必须出现在正确的位置上(个⼈不建议使⽤该规则,⽤region把⼀个类⽂件⾥的元素分好组即可,字段、属性、对外公布的接⼝、私有⽅法等组)
3、SA1202:ElementsMustBeOrderedByAccess 元素的修饰符有⼀个固定的顺序(个⼈不建议使⽤该规则,⽤region把⼀个类⽂件⾥的元素分好组即可,字段、属性、对外公布的接⼝、私有⽅法等组)
dead中文是什么意思4、SA1203:ConstantsMustAppearBeforeFields 常量字段摆放在其它字段之上
5、SA1204:StaticElementsMustAppearBeforeInstanceElements Static 元素摆放在前⾯
成人的英文6、SA1205:PartialElementsMustDeclareAccess Partial修饰的元素必须声明读写权限
7、SA1206:DeclarationKeywordsMustFollowOrder 举例:
keywords must appear in the following order:
Access modifiers
static
All other keywords
8、SA1207:ProtectedMustComeBeforeInternal Protected在Internal之前
9、SA1208:SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives 系统级的引⽤在其他引⽤之前(格式化代码就会⾃动按照这个规则编排using部分)
10、SA1209:UsingAliasDirectivesMustBePlacedAfterOtherUsingDirectives using部分起别名的在最后排布
11、SA1210:UsingDirectivesMustBeOrderedAlphabeticallyByNamespace using部分按照字母顺序编排
12、SA1211:UsingAliasDirectivesMustBeOrderedAlphabeticallyByAliasName 别名的按照别名的字母编排
restaurants13、SA1212:PropertyAccessorsMustFollowOrder 属性按照先get在t
14、SA1213:EventAccessorsMustFollowOrder 时间先remove在add
15、SA1214:StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements StaticReadonly元素在StaticNonReadonly元素之前
16、SA1215:InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements
⼀个readonly 实例元素要在⼀个⾮readonly 实例元素
可读性规则
培训ui设计的机构1、 SA1100:DoNotPrefixCallsWithBaUnlessLocalImplementationExists
change the ‘ba.’ prefix to ‘this.’.