new一个泛型的实例,编译失败了,为什么? public class My<T> where T: new() { public T Create() { return new T(); } } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为不是所有的类型都有公开的无参构造函数的。你要告诉编译起T可以用new T():public class My<T> where T : new(){ ... 相当于加了一个限制条件。这样才能保证T有new可以被调用。 异常提示已经很明显地告诉你应该怎么做了,少了约束where T : new() Cannot create an instance of the variable type 'T' because it does not have the new() constraint=> because 'T' does not have the new() constraint new ().....让编译器知道这个T泛型是有无参数的构造函数的,因为你new T()了 在类的声明后面价格约束,where T:new()因为方法create里需要new T 所以,T必须要有个无参数的构造函数。 class List<T> : where T : new(){public T gcnewT {get{ return new T(); }}} 求算法,多音字组合问题。 World Wide Web Publishing Service 自动关闭如何解决 Swiff Chart 在本地没问题,上到服务器就中文出现乱码 急求!控件镶嵌的findcontrol问题 如果将png格式图形变灰显示 MYQQ 怎样得到本机上网时的IP地址 算术计算式的计算。 asp.net使用form身份认证“串号问题” ? ArrayList如何动态控制一个二维数组 怎么让dev gridcontrol表里默认显示登录人信息 和登录时间 如何通过代码实现datagridview中显示sqlsever的表
public class My<T> where T : new()
{
...
=>
because 'T' does not have the new() constraint
因为方法create里需要new T 所以,T必须要有个无参数的构造函数。
class List<T> : where T : new()
{
public T gcnewT {
get{ return new T(); }
}
}