[英]Generic function and new constraint
当一个从IProject继承而另一个具有new()约束时,如何使用两个参数? 以下内容未通过“错误,因为它没有new()约束,无法创建变量类型'T'的实例”而无法通过编译。
public static T CreateNewProject<T, V>(string token, string projectName) where V : IProject<T>, T new()
{
T project = new T();
}
如果要将约束应用于多个参数,则需要添加第二个where
:
where V : IProject<T>
where T : new()
而且,您需要从方法中返回一些信息:
public static T CreateNewProject<T, V>(string token, string projectName)
where V : IProject<T>
where T : new()
{
return new T();
}
PS:为应用new
约束,类型参数必须具有公共的无参数构造函数。
阅读此以获得更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.