我有一個枚舉,它是一個對象的成員變量。我不知道枚舉的確切類型,只是它來自System.Enum
。我想設置枚舉的基礎數值。換句話說:設置System.Enum的底層值
Enum e;
// ...
e = 42; // Doesn't comple
這可能嗎?它可以用反射來完成嗎?
編輯1:枚舉是更大的數據結構的一部分,所以使用Enum.ToObject()創建新值是不合適的。
編輯2:澄清枚舉是一個對象的成員變量。
編輯3:由於一些評論者要求更多的上下文,所以繼承了一個總結:我有一些通用代碼應該將UI控件(文本框等)與對象數據模型中的相應字段相關聯。當UI更改時,模型更新,反之亦然。我正在研究擴展它以在組合框和枚舉之間映射;枚舉將被設置爲所選組合條目的索引。從枚舉的基礎值中設置選定的項目是微不足道的,但相反,這是問題發生的地方。我確信這是不可能的,但認爲這值得提問。
你應該知道,即使你這樣做,它也不會改變傳入你的函數的Enum的值。你想做什麼? – Random832
順便說一句,它可能有助於澄清你的意思是「對枚舉的引用」。爲了直接引用該值,您需要知道該類型(即使它是通用方法中的「T」);否則,你可能使用了一個* boxed copy *的引用,而不是原來的值本身 –
這是生命宇宙和所有事物的答案!要使用枚舉你需要知道他們的設計,你可以找到它。 Downvote浪費時間。 – MrFox