[英]how to dynamical pass generic-type same as type of parameter?
我正在尝试做这样的事情:
public static void ShowTaskPane(UserControl type)
{
var item = set.OfType<typeof(type)>().FirstOrDefault();
}
但这不起作用,我想选择类型或传递参数的对象。 方法签名,如果需要,我可以更改它,但建议我如何做?
您可以将方法定义为:
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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.