1. 程式人生 > >【顆粒歸倉】(四)程式碼走查--StyleCop所有規範的翻譯準則

【顆粒歸倉】(四)程式碼走查--StyleCop所有規範的翻譯準則

       從網上找StyleCop官網準則的翻譯好費心,功夫不負有心人,終於找到了完整版(還是在壓縮檔案中),分享給同學們來學習,其中有我自己的標註(紅色字型),和網友們一起學習、提高。
                                                                                                                         -----題記

所有規則的翻譯(基於版本4.7.44.0):

一、文件規則

        1、SA1600:ElementsMustBeDocumented元素必須添加註釋()

        2、SA1601:PartialElementsMustBeDocumented   Partial修飾的成員必須添加註釋

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   引數必須註釋

13、SA1612:ElementParameterDocumentationMustMatchElementParameters  引數的個數必須與註釋裡的個數一致

14、SA1613:ElementParameterDocumentationMustDeclareParameterName 引數的註釋裡必須有引數的名稱

15、SA1614:ElementParameterDocumentationMustHaveText    引數註釋節點裡不能空著

16、SA1615:ElementReturnValueMustBeDocumented  返回值必須添加註釋

17、SA1616:ElementReturnValueDocumentationMustHaveText  返回值註釋的節點內必須有文字值

18、SA1617:VoidReturnValueMustNotBeDocumented 空返回值一定不能有返回值註釋

19、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:SingleLineCommentsMustNotUseDocumentationStyleSlashes  單行註釋不能採取三個斜線的註釋方式,斜線的個數必須是二的倍數

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 seting”畫面的” CompanyInformation tab”進行設定

38、SA1637:FileHeaderMustContainFileName 程式碼檔案頭部註解中必須包含檔名稱

39、SA1638:FileHeaderFileNameDocumentationMustMatchFileName  程式碼檔案頭部註解中必須包含檔名稱必須與實際的名稱匹配

40、SA1639:FileHeaderMustHaveSummary  程式碼檔案頭部註解中必須包含Summary節點

41、SA1640:FileHeaderMustHaveValidCompanyText程式碼檔案頭部註解中版權資訊必須含有合理的公司名字

42、SA1641:FileHeaderCompanyNameTextMustMatch  程式碼檔案頭部註解中的公司名字必須與設定畫面設定的內容相匹配,在”style seting”畫面的” CompanyInformation tab”進行設定

43、SA1642:ConstructorSummaryDocumentationMustBeginWithStandardText  建構函式註釋標準:“Initializes a new instance of the <see cref="Customer{T}"/>class.”

44、SA1643:DestructorSummaryDocumentationMustBeginWithStandardText  解構函式註釋標準:“Finalizes an instance of the <see cref="Customer"/>class.”

45、SA1644:DocumentationHeadersMustNotContainBlankLines   註釋中不能出現空白行

46、SA1645:IncludedDocumentationFileDoesNotExist   如果註釋中包含檔案,要確定這個檔案存在,舉例:“       /// <include file="IncludedDocumentation.xml" path="root/EnabledMethodDocs" />”這一項過於複雜不建議用,但是如果將來想規範化相同共性東西的註釋的時候倒是可以考慮引入。

47、SA1646:IncludedDocumentationXPathDoesNotExist  如果註釋中包含檔案,路徑不存在。

48、SA1647:IncludeNodeDoesNotContainValidFileAndPath  如果註釋中包含檔案檔案與路徑都要合法

49、SA1648:InheritDocMustBeUsedWithInheritingClass   這項不明白是什麼意思,還請知道的分享給我,謝謝。

50、SA1649:FileHeaderFileNameDocumentationMustMatchTypeName  檔案頭註釋必須匹配型別

51、SA1650:ElementDocumentationMustBeSpelledCorrectly註釋不能有拼寫錯誤(對中文支援不好,不建議使用該項)

二、佈局規則

1、  SA1500:CurlyBracketsForMultiLineStatementsMustNotShareLine  花括號不能再同一行。

標準格式:  public StRsvrRFun()

                {

                }

 //在我們的專案中,對於get或者set自動生成的方法,需要修改

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:StatementMustNotUseUnnecessaryParenthesis  語句中不可以出現多餘的括弧,無意義的括弧增加了程式碼的可讀性

2、SA1400:AccessModifierMustBeDeclared 必須定義訪問修飾符

3、SA1401:FieldsMustBePrivate  欄位必須定義為私有的

4、SA1402:FileMayOnlyContainASingleClass 一個CS檔案裡只定義一個類

5、SA1403:FileMayOnlyContainASingleNamespace  一個CS檔案只包含一個名稱空間

6、SA1404:CodeAnalysisSuppressionMustHaveJustification   Suppression特性(取消報告特定的靜態分析工具規則衝突,允許一個程式碼專案上應用多個取消報告設定)必須要有合理理由

7、SA1405:DebugAssertMustProvideMessageText 參見程式碼:“Debug.Assert(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:AttributeConstructorMustNotUseUnnecessaryParenthesis特性建構函式如果是空參的形式,不要包括那個空括號

四、命名規則

1、SA1300:ElementMustBeginWithUpperCaseLetter  首字母必須大寫(個人理解應該是欄位以外的東西)

2、SA1301: ElementMustBeginWithLowerCaseLetter  不會出現的情況

3、SA1302:InterfaceNamesMustBeginWithI  介面必須以“I”字母開頭

4、SA1303:ConstFieldNamesMustBeginWithUpperCaseLetterConst常量首字母大寫

5、SA1304:NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter非私有非制度的欄位必須首字母大寫

6、SA1305:FieldNamesMustNotUseHungarianNotation除了列表外的字元不可以出現匈牙利命名規則,在”StyleSetting”裡的” Hungarian”Tab裡設定

7、SA1306:FieldNamesMustBeginWithLowerCaseLetter欄位名必須首字母小寫

8、SA1307:AccessibleFieldsMustBeginWithUpperCaseLetterpublic或者internal欄位首字母大寫

9、SA1308:VariableNamesMustNotBePrefixed  變數名不能有字首

10、SA1309:FieldNamesMustNotBeginWithUnderscore  欄位名不能以下滑線開頭

11、SA1310:FieldNamesMustNotContainUnderscore   欄位名不能包括下滑線

12、SA1311:StaticReadonlyFieldsMustBeginWithUpperCaseLetterstatic與readonly欄位首字母大寫

五、排序規則

1、SA1200:UsingDirectivesMustBePlacedWithinNamespace  using部分必須在Namespace內部(個人不建議用這個規則)

2、SA1201:ElementsMustAppearInTheCorrectOrder所有的元素必須出現在正確的位置上(個人不建議使用該規則,用region把一個類檔案裡的元素分好組即可,欄位、屬性、對外公佈的介面、私有方法等組)

3、SA1202:ElementsMustBeOrderedByAccess  元素的修飾符有一個固定的順序(個人不建議使用該規則,用region把一個類檔案裡的元素分好組即可,欄位、屬性、對外公佈的介面、私有方法等組)

4、SA1203:ConstantsMustAppearBeforeFields  常量欄位擺放在其它欄位之上

5、SA1204:StaticElementsMustAppearBeforeInstanceElementsStatic  元素擺放在前面

6、SA1205:PartialElementsMustDeclareAccessPartial修飾的元素必須宣告讀寫許可權

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別名的按照別名的字母編排

13、SA1212:PropertyAccessorsMustFollowOrder  屬性按照先get在set

14、SA1213:EventAccessorsMustFollowOrder  時間先remove在add

15、SA1214:StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements  StaticReadonly元素在StaticNonReadonly元素之前

16、SA1215:InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements

一個readonly 例項元素要在一個非readonly 例項元素

六、可讀性規則

1、SA1100:DoNotPrefixCallsWithBaseUnlessLocalImplementationExists

change the ‘base.’ prefix to ‘this.’.

2、SA1101:PrefixLocalCallsWithThis ‘this.’字首不能省略

3、SA1102:QueryClauseMustFollowPreviousClause   linq語句要麼同一行,要麼關鍵字分佈在多行,關鍵字對齊

4、SA1103:QueryClausesMustBeOnSeparateLinesOrAllOnOneLine 不是很理解

5、SA1104:QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines不是很理解

6、SA1105:QueryClausesSpanningMultipleLinesMustBeginOnOwnLine不是很理解

7、SA1106:CodeMustNotContainEmptyStatements  不允許有空白的宣告

8、SA1107:CodeMustNotContainMultipleStatementsOnOneLine 同一行裡不允許出現多個宣告語句

9、SA1108:BlockStatementsMustNotContainEmbeddedComments  非法用例:

if (x != y)

    // Make sure xdoes not equal y

    {

    }

10、SA1109:BlockStatementsMustNotContainEmbeddedRegions  非法用例:

    if (x != y)

    #region

    {

    }

    #endregion

11、SA1110:OpeningParenthesisMustBeOnDeclarationLine方法開始的括弧要在宣告的那一行

12、SA1111:ClosingParenthesisMustBeOnLineOfLastParameter  方法結束括弧與最後一個引數同行

13、SA1112:ClosingParenthesisMustBeOnLineOfOpeningParenthesis  如果是空參的情況,開始於結束括弧在同一行

14、SA1113:CommaMustBeOnSameLineAsPreviousParameter  逗號必須與前一個引數同行

15、SA1114:ParameterListMustFollowDeclaration

確保引數列表與開始括號同行,或者另起一行 引數整體要在同一行

16、SA1115:ParameterMustFollowComma引數與引數之間不能隔空白行

17、SA1116:SplitParametersMustStartOnLineAfterDeclaration  所有引數在同一行或者如下示例:

public string JoinName(

        string first,

        string last)

18、SA1117:ParametersMustBeOnSameLineOrSeparateLines   同上

19、SA1118:ParameterMustNotSpanMultipleLines實際呼叫是引數要在同一行

20、SA1120:CommentsMustContainText  註釋必須節點內部必須有文字

21、SA1121:UseBuiltInTypeAlias  使用內嵌的類型別名,如下圖:

Type Alias

Type

Fully Qualified Type

bool

Boolean

System.Boolean

byte

Byte

System.Byte

char

Char

System.Char

decimal

Decimal

System.Decimal

double

Double

System.Double

short

Int16

System.Int16

int

Int32

System.Int32

long

Int64

System.Int64

object

Object

System.Object

sbyte

SByte

System.SByte

float

Single

System.Single

string

String

System.String

ushort

UInt16

System.UInt16

uint

UInt32

System.UInt32

ulong

UInt64

System.UInt64

22、SA1122:UseStringEmptyForEmptyStrings 

示例程式碼:“string s =string.Empty;”不能寫成” string s = ""; ”

23、SA1123:DoNotPlaceRegionsWithinElements  不使用region(個人較反對這條,個人傾向於用region規整類裡的元素)

24、SA1124:DoNotUseRegions  不使用region(個人較反對這條,個人傾向於用region規整類裡的元素)

25、SA1125:UseShorthandForNullableTypes  使用簡寫版的可空型別 如”int?”

26、SA1126:PrefixCallsCorrectly  呼叫類成員的時候要帶上“this”字首

七、拼寫規則

1、SA1000:KeywordsMustBeSpacedCorrectly 關鍵字不能拼寫錯誤

2、SA1001:CommasMustBeSpacedCorrectly 逗號前面擺放一個空格

3、SA1002:SemicolonsMustBeSpacedCorrectly  分號前面擺放一個空格

4、SA1003:SymbolsMustBeSpacedCorrectly 操作符與元素之間不加空格

5、SA1004:DocumentationLinesMustBeginWithSingleSpace “///”註釋的每一行以一個空格開頭

6、SA1005:SingleLineCommentsMustBeginWithSingleSpace  單行註釋以一個空格開頭

7、SA1006:PreprocessorKeywordsMustNotBePrecededBySpace  預處理關鍵字內部不允許出現空格如“# if Debug”是不允許的

8、SA1007:OperatorKeywordMustBeFollowedBySpace   操作必須要在一個空格之後

9、SA1008:OpeningParenthesisMustBeSpacedCorrectly  開始括弧放置合理的空格

10、SA1009:ClosingParenthesisMustBeSpacedCorrectly  結尾括弧放置合理的空格

11、SA1010:OpeningSquareBracketsMustBeSpacedCorrectly開始方括號放置合理的空格

12、SA1011:ClosingSquareBracketsMustBeSpacedCorrectly   結束方括號放置合理的空格

13、SA1012:OpeningCurlyBracketsMustBeSpacedCorrectly  開始花括號放置合理的空格

14、SA1013:ClosingCurlyBracketsMustBeSpacedCorrectly結束花括號放置合理的空格

15、SA1014:OpeningGenericBracketsMustBeSpacedCorrectly同上

16、SA1015:ClosingGenericBracketsMustBeSpacedCorrectly  同上

17、SA1016:OpeningAttributeBracketsMustBeSpacedCorrectly  特性開始括號同上

18、SA1017:ClosingAttributeBracketsMustBeSpacedCorrectly  特性結尾括號同上

19、SA1018:NullableTypeSymbolsMustNotBePrecededBySpace空型別前不放置空格

20、SA1019:MemberAccessSymbolsMustBeSpacedCorrectly  成員訪問關鍵字前後有空格

21、SA1020:IncrementDecrementSymbolsMustBeSpacedCorrectly自增、自減關鍵字要有空格

22、SA1021:NegativeSignsMustBeSpacedCorrectly  負號要有空格

23、SA1022:PositiveSignsMustBeSpacedCorrectly   正號要有空格

24、SA1023:DereferenceAndAccessOfMustBeSpacedCorrectly

26、SA1025:CodeMustNotContainMultipleWhitespaceInARow 同一行不允許出現多個空格

27、SA1026:CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation  new關鍵字之後不允許出現空格

28、 SA1027:TabsMustNotBeUsed  不用tab字元(個人不建議採用這條)

個人建議:強迫症患者使用StyleCop,最好學會如何遮蔽不需要的準則以及自己來設定需要的規範準則,啊哈哈。