我有大量的表單都來自基類FormBase
。要激活/告訴他們我用下面的泛型方法:將泛型類型從類型字典傳遞給泛型方法?
public T ShowForm<T>() where T : FormBase, new()
{
FormBase form = _activeForms.FirstOrDefault(f => f is T);
if (form != null)
form.BringToFront();
else
{
form = new T();
IListView view = form as IListView;
if (view != null)
view.ParentView = this;
_activeForms.Add(form);
form.MdiParent = this;
form.Show();
}
return (T)form;
}
現在我想用一本字典,這樣我可以輕鬆地添加更多的形式進來,而不必維持一個巨大的switch
聲明。
是否有可能有像Dictionary<string, Type>
這樣的字典並將Type傳遞給泛型方法?
你需要'詞典<字符串類型>'或'Dictionary'? –
qxg
你需要什麼字典? –
我使用了一個相當大的'switch(key)'語句,它使用'key'並基本上將其轉換爲'ShowForm();'。如果我可以使用字典,我只需要在字典中添加'key'和'typeof(FooForm)'來處理我的代碼中的新窗體。 –
w4n