我有一個打印字符串列表的方法GenerateOutput
。該方法將多個枚舉作爲參數,並根據哪些標誌被輸入到方法中輸出結果。我知道枚舉是爲編譯時間設計的,但是可以根據用戶在程序中選擇的選項在運行時更改輸出嗎?基本上,我有各種代表可能的枚舉的複選框。當用戶選擇一個選項時,應將該標誌作爲參數添加到GenerateOutput
方法中。這可以做到嗎?謝謝運行時輸入枚舉
Q
運行時輸入枚舉
0
A
回答
3
我想你想做什麼(我不知道我完全理解你的問題)是在運行時建立一個枚舉值傳遞給函數。
假設你的枚舉與[國旗]屬性指定:
[flags]
public enum TestEnumerations
{
Value1 = 1,
Value2 = 2,
Value3 = 4,
//etc
}
,那麼你可以這樣做:
// In checkbox handlers, e.g.
tEnums |= TestEnumerations.Value1;
// Where you call the method
GenerateOutput(tEnums);
另外,如舊金山的意見建議,有一個List列表(或HashSet如果你只想要每個枚舉值出現一次):
// In checkbox handlers, e.g.
list.Add(TestEnumerations.Value1);
// Where you call the method
GenerateOutput(list);
+0
謝謝。我不知道你可以做'| ='。這應該做到這一點。 – Brap 2010-12-15 20:27:10
+1
只有當值爲2的冪並且設置了[flags]屬性時它纔會起作用。 – 2010-12-15 20:28:02
相關問題
- 1. 在運行時枚舉UISupportedExternalAccessoryProtocols
- 2. 如何在枚舉類型僅在運行時知道枚舉枚舉?
- 3. 數組枚舉和輸入
- 4. 枚舉和用戶輸入
- 5. 在運行時更改枚舉值?
- 6. 在運行時創建/修改枚舉
- 7. 編譯/運行時Java枚舉評估
- 8. 在運行時枚舉.NET嵌入式資源的內容
- 9. 輸入從流到枚舉類型
- 10. 在C/gcc中輸入枚舉類型
- 11. 枚舉Delphi中的運行進程
- 12. 枚舉的VBScript運行關鍵
- 13. MySQL插入(枚舉?)
- 14. 將字符串輸入與枚舉類型進行比較
- 15. 在內部枚舉行加入
- 16. 枚舉輸出錯誤
- 17. PostgreSQL枚舉時空
- 18. 枚舉作爲運算
- 19. Haskell - 在運行時輸入
- 20. 在C#運行時填充/更新枚舉值
- 21. 如何在運行時爲枚舉成員賦值?
- 22. 在運行時枚舉.NET程序集資源
- 23. 在運行時從web.config獲取枚舉值
- 24. Java的枚舉:封裝和運行時的初始化
- 25. 在運行時編譯的部分枚舉 - 替代
- 26. 如何在運行時更改枚舉(Java)
- 27. 從運行時已知的枚舉中獲取值
- 28. 帶枚舉的MySQL枚舉
- 29. Java枚舉找到枚舉
- 30. Java類枚舉枚舉類
請把你的例子/代碼r GenerateOutput函數 – Francisco 2010-12-15 19:35:36
這只是測試代碼,以使其工作。該方法僅僅是'void GenerateOutput(TestEnumerations tEnums)'並將'tEnums'值打印到控制檯。我想在運行時輸入多個tEnums。 – Brap 2010-12-15 19:47:04
爲什麼不輸入多個tEnums,例如,逗號或其他字符,然後解析它在你的方法?像:t1,t2然後使用string.split(','),然後Enum.Parse爲每個值? – Ostap 2010-12-15 20:05:40