回答
舉一個稍微不同的答案......而值是類型安全的從鑄造角度看,他們仍然選中,一旦他們投 - 即
enum Foo { A = 1, B = 2, C = 3 }
static void Main()
{
Foo foo = (Foo)500; // works fine
Console.WriteLine(foo); // also fine - shows 500
}
出於這個原因,你應該採取請注意檢查值 - 例如switch
中的default
會引發異常。
你也可以檢查(用於非
[Flags]
值)通過:
bool isValid = Enum.IsDefined(typeof(Foo), foo);
是的,他們是。
以下是http://www.csharp-station.com/Tutorials/Lesson17.aspx
枚舉是強類型的常量。它們本質上是獨特的類型,允許您將符號名稱分配給整數值。在C#傳統中,它們是強類型的,這意味着即使其成員的基礎值相同,一種類型的枚舉也可能不會隱式分配給另一種類型的枚舉。沿着相同的路線,整數類型和枚舉不是可以互換的。不同的枚舉類型和整型類型之間的所有賦值都需要明確的轉換。
枚舉是強類型的常量。 它們本質上是唯一的類型, 允許您將符號名稱分配給 整數值。在C#中的傳統, 它們是強類型的,這意味着 一種類型的枚舉可能不 隱式分配給的 另一種類型的枚舉,即使其成員的 潛在價值是 相同。沿着相同的路線, 整數類型和枚舉不是 隱含可互換。所有 不同枚舉類型和整型類型之間的賦值都需要顯式強制轉換 。
重新整型類型:除了文字0,其中*是*隱式。 – 2008-10-16 13:00:57
是的。
C#:枚舉類型:命名值的
-A類型安全的枚舉。
-Prevents編程錯誤
- 用戶可以控制基本類型(默認爲int)
- 也可以控制基礎值
技術上沒有,因爲你可以代表一個枚舉作爲基礎值( int,long等)。但是,如果確保只按其提供的名稱使用枚舉,則如果更改枚舉值的名稱而不更新其引用,則會收到編譯時錯誤。在這方面,它是類型安全的。
我來晚了這裏的聚會,但我想扔了一點點額外的東西...來自Krzysztof Cwalina的.NET Framework Design Guidelines的更新。除了上面關於檢查以確保將有效值傳遞給您的枚舉的優秀技巧之外,這還提供了有關如何有效使用它們的一些指導和建議,一堆陷阱(特別涉及Flags
枚舉)等。
對於那些建議使用Enum.IsDefined進行參數驗證的人......不要! Per Brad Abrams(來自Framework Design Guidlines Update on Enum Design):
Enum.IsDefined()確實有兩個問題。首先,它加載反射和一些冷類型元數據,使其成爲一個看似昂貴的調用。其次,正如註釋暗示的那裏存在版本問題。
是他們r強類型薩法德你無法不這樣做枚舉常量變量integeral價值impilcit皈依üHV 2 expilcitly做的DAT 如 枚舉天{ 太陽, 週一 } INTË =(int)days.sun; console.writeline(e);
- 1. C#枚舉類型安全
- 2. C中的類型安全枚舉?
- 3. 類型安全枚舉位標誌
- 4. 枚舉包裝類型安全
- 5. 上遍歷類型安全的枚舉
- 6. 類型安全的枚舉或屬性枚舉?
- 7. Perl有枚舉類型嗎?
- 8. 如何在C++中創建類型安全的int - 枚舉?
- 9. 枚舉類用C型串++
- 10. 枚舉類型在C++
- 11. C++ - 映射類型枚舉
- 12. 枚舉時刪除Cookie:安全嗎?
- 13. 類型枚舉
- 14. 使用泛型類型安全枚舉模式實現
- 15. 枚舉C++類
- 16. Doctrine枚舉類型不允許添加非枚舉值嗎?
- 17. Ç枚舉(枚舉類型定義)的
- 18. 枚舉vs強類型枚舉
- 19. 枚舉拋出「不是枚舉類型」
- 20. Node.js native枚舉中的枚舉類型
- 21. 我們可以使用枚舉作爲類型安全實體ID嗎?
- 22. Java中有MIME類型的枚舉嗎?
- 23. 安全地將整數與強類型枚舉進行比較
- 24. 定義的新類型安全枚舉是否從0開始?
- 25. 輸入依賴項注入的類型安全枚舉
- 26. 如何實現類型安全的COM枚舉?
- 27. Web API響應的序列化類型安全枚舉?
- 28. 上枚舉類型
- 29. HTML5枚舉類型
- 30. 爲枚舉類型
+1爲Enum.IsDefined提示。 – OregonGhost 2008-10-16 14:03:56
哦,這是一個很好的提示。我不知道這個..總是認爲它會拋出一個InvalidCastException或其他東西。絕對+1我! – 2008-10-16 14:15:02