Ila*_*lan 2 .net c# oop generics interface
当一个继承自IProject而另一个具有new()约束时,如何使用两个参数?以下内容未通过编译"无法创建变量类型'T'的实例,因为它没有new()约束"错误.
public static T CreateNewProject<T, V>(string token, string projectName) where V : IProject<T>, T new()
{
T project = new T();
}
Run Code Online (Sandbox Code Playgroud)
如果要将约束应用于多个参数,则需要添加第二个where
:
where V : IProject<T>
where T : new()
Run Code Online (Sandbox Code Playgroud)
而且,您需要从方法中返回一些内容:
public static T CreateNewProject<T, V>(string token, string projectName)
where V : IProject<T>
where T : new()
{
return new T();
}
Run Code Online (Sandbox Code Playgroud)
PS:对于应用new
约束,type参数必须具有公共无参数构造函数.
阅读本文以获取更多信息.