我在試圖製作一個簡單的Roguelike遊戲來學習C#更好一些。我試圖製作一個通用的方法,我可以將它作爲一個參數賦予一個Enum,並將返回該Enum中有多少個元素作爲int。我需要儘可能通用,因爲我將有幾個不同的類調用該方法。傳遞一個Enum作爲參數
找遍了周圍的最後一個小時左右,但我無法在這裏找到任何資源或其他相當多回答我的問題...我仍然在爲C#初學者,中級階段,所以我仍在學習的東西所有的語法,但這裏是我到目前爲止有:
// Type of element
public enum ELEMENT
{
FIRE, WATER, AIR, EARTH
}
// Counts how many different members exist in the enum type
public int countElements(Enum e)
{
return Enum.GetNames(e.GetType()).Length;
}
// Call above function
public void foo()
{
int num = countElements(ELEMENT);
}
它編譯出現錯誤「參數1:無法從‘的System.Type’到‘System.Enum’轉換」。我有點明白爲什麼它不會工作,但我只需要一些方向來正確設置一切。
謝謝!
PS:是否可以在運行時更改枚舉的內容?程序正在執行?
什麼會改變在運行時枚舉的目的是什麼?沒有代碼會使用添加的值,並且使用修改/刪除值的代碼會中斷。如果您想要在運行時動態更改數據元素的列表,請使用數據庫。 – David 2012-04-05 00:46:39
我試圖在較小規模上效仿矮人堡壘。您可以通過遊戲在啓動時解析的某種平面文本文件來更改各種東西。不知道他們究竟是如何設置的,儘管我的猜測是,如果你必須對Enums進行硬編碼以與它們一起工作,那麼它不會與它們在一起......字典呢? – 2012-04-05 01:34:58