CA1712:不要使用類型名稱做為列舉值的前置字元
型別名稱 |
DoNotPrefixEnumValuesWithTypeName |
CheckId |
CA1712 |
分類 |
Microsoft.Naming |
中斷變更 |
中斷 |
原因
列舉 (Enumeration) 包含的成員名稱會以列舉的型別名稱做為開頭。
規則描述
因為型別資訊必須由開發工具提供,所以列舉型別成員的名稱不能以型別名稱做為開頭。
命名慣例會為針對 Common Language Runtime 的程式庫提供通用的外觀。如此可縮短學習新軟體程式庫的時間,並讓客戶深信程式庫是由學有專長的人員以不斷開發的 Managed 程式碼開發而成。
如何修正違規
若要修正此規則的違規情形,請從列舉型別成員移除型別名稱或前置字元。
隱藏警告的時機
請勿隱藏此規則的警告。
範例
在下列範例中,程式碼會顯示命名錯誤的列舉型別,後面跟著正確的版本。
Imports System
Namespace NamingLibrary
Enum DigitalImageMode
DigitalImageModeBitmap = 0
DigitalImageModeGrayscale = 1
DigitalImageModeIndexed = 2
DigitalImageModeRGB = 3
End Enum
Enum DigitalImageMode2
Bitmap = 0
Grayscale = 1
Indexed = 2
RGB = 3
End Enum
End Namespace
using System;
namespace NamingLibrary
{
public enum DigitalImageMode
{
DigitalImageModeBitmap = 0,
DigitalImageModeGrayscale = 1,
DigitalImageModeIndexed = 2,
DigitalImageModeRGB = 3
}
public enum DigitalImageMode2
{
Bitmap = 0,
Grayscale = 1,
Indexed = 2,
RGB = 3
}
}
using namespace System;
namespace NamingLibrary
{
public enum class DigitalImageMode
{
DigitalImageModeBitmap = 0,
DigitalImageModeGrayscale = 1,
DigitalImageModeIndexed = 2,
DigitalImageModeRGB = 3
};
public enum class DigitalImageMode2
{
Bitmap = 0,
Grayscale = 1,
Indexed = 2,
RGB = 3
};
}
相關規則
CA1027:必須以 FlagsAttribute 標記列舉
CA2217:不要以 FlagsAttribute 標記列舉