List<T> & where T :
本文关键字:where amp gt List lt | 更新日期: 2023-09-27 18:08:13
我有一个简单的代码可以工作:
public class Example
{
private List<SomeClass> _list = new List<SomeClass>();
public void Add(SomeClass _b) {
_list.Add(_b);
}
}
是否有可能将someeclass添加到_list这样的东西?(不指定参数)?
public void Add<T>() where T : SomeClass
{
}
假设SomeClass
有一个默认构造函数,您可以:
public void Add<T>() where T : SomeClass, new()
{
_list.Add(new T());
}
如果SomeClass
没有默认构造函数,那么您将无法编写new T()
,您将需要找到另一种方法来获得T
对象。
可以使用泛型:
public class Example<T>
{
private List<T> = _list = new List<T>();
public void Add(T element)
{
_list.Add(element);
}
}
你会添加什么?我看不出这有什么意义。Example
的外部消费者将无法添加任何内容
你必须做
public void Add<T>(T _b) where T : SomeClass
{
}