C#泛型集合问题!

来源:百度知道 编辑:UC知道 时间:2024/06/03 01:31:00
public List<T> GetAll<T>() where T : new()
{

}
这种泛型集合怎么理解?

这个怎么没有泛型参数类型的方法参数?这样的方法声明是没意义的。
public List<T> GetAll<T>(T t) where T : new()
{
//操作t参数
}
上边的"where T : new() ",是对泛型参数T的限定。"new()"表示泛型参数T表示的类型必须具有默认的构造函数,否则编译不通过。

where 子句还可以包括构造函数约束。
可以使用 new 运算符创建类型参数的实例;但类型参数为此必须受构造函数约束 new() 的约束。new() 约束可以让编译器知道:提供的任何类型参数都必须具有可访问的无参数(或默认)构造函数。例如:
public class MyGenericClass <T> where T: IComparable, new()
{
// 如果没有new()下面语句不是必要存在的
T item = new T();
}
new() 约束出现在 where 子句的最后。

声明一个LIST为返回类型的GetAll方法,where 子句可以包括构造函数约束。可以使用 new 运算符创建类型参数的实例;但类型参数为此必须受构造函数约束 new() 的约束。new() 约束可以让编译器知道:提供的任何类型参数都必须具有可访问的无参数(或默认)构造函数

fdggd