我正在尝试做这样的事情:
public static void ShowTaskPane(UserControl type)
{
var item = set.OfType<typeof(type)>().FirstOrDefault();
}
但这不起作用,我想选择类型的对象或传递参数。方法签名,如果需要,我可以改变它,但建议我怎么做?
答案 0 :(得分:1)
您可以将方法定义为:
public static void ShowTaskPane<T>()
{
var item = set.OfType<T>().FirstOrDefault();
}
然后将其称为:
ShowTaskPane<UserControl>();
或者,如果您假设方法返回控件,则:
public T ShowTaskPane<T>()
{
return set.OfType<T>().FirstOrDefault();
}
称之为:
var item = ShowTaskPane<UserControl>();
评论:无论如何,我可以将T类型限制为 UserControl的子类型?
您可以指定约束:
public T ShowTaskPane<T>() where T : UserControl
{
return set.OfType<T>().FirstOrDefault();
}