CA1720:識別項不應包含型別名稱
型別名稱 |
IdentifiersShouldNotContainTypeNames |
CheckId |
CA1720 |
分類 |
Microsoft.Naming |
中斷變更 |
中斷 |
原因
外部可見成員中的參數名稱會包含資料型別名稱。
-或-
外部可見成員的名稱會包含語言專屬的資料型別名稱。
規則描述
參數與成員名稱最好是用於傳達其意義,而不是說明預期將會由開發工具提供的型別。 如果必須使用資料型別名稱,成員名稱請使用和語言無關的名稱而不是語言專屬名稱。 例如,請使用和語言無關的資料型別名稱 Int32,而不是 C# 型別名稱 'int'。
對於參數或成員名稱中的每個分離權杖,會使用不區分大小寫的方式,針對下列特定語言資料型別名稱進行檢查:
Bool
WChar
Int8
UInt8
Short
UShort
Int
UInt
Integer
UInteger
Long
ULong
未簽署
經過簽署
Float
Float32
Float64
此外,對於參數的名稱也會使用不區分大小寫的方式,針對下列和語言無關的資料型別名稱進行檢查:
物件
Obj
Boolean
Char
字串
SByte
Byte
UByte
Int16
UInt16
Int32
UInt32
Int64
UInt64
IntPtr
Ptr
指標
UInptr
UPtr
UPointer
Single
Double
Decimal
Guid
如何修正違規
如果針對參數引發:
以更能有效描述其意義的詞彙,或是更泛型的詞彙 (例如 'value') 取代參數名稱中的資料型別識別項。
如果針對成員引發:
以更能有效描述其意義的詞彙、和語言無關的對等用法,或是更泛型的詞彙 (例如 'value') 取代成員名稱中的語言專屬資料型別識別項。
隱藏警告的時機
偶爾使用以型別為基礎的參數與成員名稱可能很恰當。 但是對新的開發而言,在所有已知的案例中,您都不應該隱藏這項規則的警告。 對於之前隨附的程式庫,您可能必須隱藏這項規則的警告。