当前位置:  开发笔记 > 编程语言 > 正文

为什么这个泛型方法要求T有一个公共的无参数构造函数?

如何解决《为什么这个泛型方法要求T有一个公共的无参数构造函数?》经验,为你挑选了1个好方法。



1> James Curran..:
public void GetRecords(ref IList iList, T dataitem)
{
}

你还在寻找什么?

修改问题:

 iList = Populate.GetList() 

"dataitem"是一个变量.您想在那里指定类型:

 iList = Populate.GetList() 

类型'T'必须具有公共无参数构造函数,以便在泛型类型GetList中将其用作参数'T':new()

这就是说当你定义Populate.GetList()时,你就像这样声明:

IList GetList() where T: new() 
{...}

这告诉编译器GetList只能使用具有公共无参数构造函数的类型.你使用T在GetRecords中创建一个GetList方法(这里指的是不同的类型),你必须对它施加相同的限制:

public void GetRecords(ref IList iList, T dataitem) where T: new() 
{
   iList = Populate.GetList();
}

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有