這裏是一個字符串switch語句的一個人爲的例子:C#,使用反射來在開關獲取每個病例名
static string GetStuff(string key)
{
switch (key)
{
case "thing1": return "oh no";
case "thing2": return "oh yes";
case "cat": return "in a hat";
case "wocket": return "in my pocket";
case "redFish": return "blue fish";
case "oneFish": return "two fish";
default: throw new NotImplementedException("The key '" + key + "' does not exist, go ask your Dad");
}
}
你的想法。
我想做的是通過反射爲每個案例打印每個字符串。
我還沒有做足夠的反思,知道如何直觀地做到這一點。我真的不確定反思能否做到這一點。
可以這樣做嗎?如果是這樣,怎麼樣?
反射是用於查看對象信息,即類,屬性,方法等。這些內部的代碼不能被反映。看看訪問者模式:http://en.wikipedia.org/wiki/Visitor_pattern – TyCobb 2014-11-05 00:15:34
不幸的是,這裏的鏈接問答沒有澄清。目前還不清楚「編譯時初始化」是什麼意思,並且該鏈接中給出的答案具體指出了我之前提到的內容,即如果您有足夠的「case」標籤(IIRC,閾值爲七個或更多)代碼只是變成了字典。你想在這裏實現什麼,你不能用一本真正的字典? – 2014-11-05 00:23:45
我不知道這個功能。我當時只是在尋找一個const Dictionary。問題雖然是天氣,我可以通過反射或不通過這些。這就是我真正需要知道的。我知道字典是要走的路,因爲你的建議,我會切換到這個機制。 – OneHoopyFrood 2014-11-05 00:25:32