我將存儲在字典中的形式,如:
ConcurrentDictionary<string, Form> _forms;
void InitDictionaries(){
_forms = new ConcurrentDictionary<string, Form>();
_forms.TryAdd("Преломление Света", new Light()>;
_forms.TryAdd("Закон Ома", new OHMsLaw()>;
//...
}
所以,當涉及到的選擇,我可以使用:
public Form GetForm(string name)
{
Form toShow;
_forms.TryGetValue(name, out toShow);
return show;
}
這個字典存儲形式實例。
另一種方法是存儲派生形式型,但如果你想保存現有的,它不是一個很好的解決方案,因爲它創造了新的實例。
ConcurrentDictionary<string, Type> _forms;
你會這種方式添加類型:
_forms.TryAdd("Закон Ома", typeof(OHMsLaw));
你會用這種方式:
public Form GetForm(string name)
{
Type type;
_forms.TryGetValue(name, out type);
if (type != null)
return Activator.CreateInstance(type) as Form;
return null;
}
來源
2015-12-12 06:58:25
KAI
什麼是你的單元測試說的功能?它會產生你期望的結果嗎?如果是,爲什麼你認爲你的代碼有問題。如果不是 - 你應該問不同的問題。如果您對[重構切換案例]有疑問(http://stackoverflow.com/questions/20822683/refactoring-switch-cases) - 請隨時關閉重複。 –