我有大量的表单都来自基类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