2014-10-02 34 views
5

我有一個從字節派生的枚舉類型。 在我的公共庫中,在某個時刻,有一個enum參數會強制轉換爲int。 問題是當我的字節派生枚舉獲取到公共庫中的該方法時,轉換爲int失敗並引發異常。如何鍵入檢查枚舉實例基類?

有沒有辦法鍵入檢查一個枚舉的基類,所以我可以只爲基於int的枚舉進行Int轉換?

這裏有兩個樣品枚舉:

enum DaysByte : byte { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri }; 
enum DaysInt : int { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri }; 
+1

你能請張貼一些示例代碼? – rhughes 2014-10-02 13:34:38

+2

看看Enum.GetUnderlyingType方法:http://msdn.microsoft.com/en-us/library/system.enum.getunderlyingtype(v=vs.110).aspx – 2014-10-02 13:35:47

回答

7

您可以使用Enum.GetUnderlyingType方法

Enum.GetUnderlyingType(typeof(YourEnum)) == typeof(int) 

// or via enum value 
Enum.GetUnderlyingType(yourEnumValue.GetType()) == typeof(int) 
+0

如果他只有值? – 2014-10-02 13:38:11

+0

@ Selman22謝謝! – 2014-10-02 13:38:13

+2

@TimSchmelter也補充說。你是這個意思嗎? – 2014-10-02 13:39:37