C# 列表<;T>&;其中T:
我有简单的代码,可以正常工作:C# 列表<;T>&;其中T:,c#,list,C#,List,我有简单的代码,可以正常工作: public class Example { private List<SomeClass> _list = new List<SomeClass>(); public void Add(SomeClass _b) { _list.Add(_b); } } 公共类示例 { 私有列表_List=新列表(); 公共无效添加(SomeClass\u b){ _列表。添加(_b); } } 可以在列
public class Example
{
private List<SomeClass> _list = new List<SomeClass>();
public void Add(SomeClass _b) {
_list.Add(_b);
}
}
公共类示例
{
私有列表_List=新列表();
公共无效添加(SomeClass\u b){
_列表。添加(_b);
}
}
可以在列表中添加这样的类吗?(未指定参数)
public void Add(),其中T:SomeClass
{
}
您想添加什么?我不认为这有什么意义。Example
的外部使用者将无法添加任何内容。假设SomeClass
具有默认构造函数,您可以:
public void Add<T>() where T : SomeClass, new()
{
_list.Add(new T());
}
public void Add(),其中T:SomeClass,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);
}
}
公共类示例
{
私有列表=_List=新列表();
公共无效添加(T元素)
{
_列表。添加(元素);
}
}
您必须这样做
public void Add<T>(T _b) where T : SomeClass
{
}
public void Add(T_b)其中T:SomeClass
{
}
但它毫无意义,与现有代码的含义相同。否-您添加了什么?这里没有要添加的实例。如果没有争论,你打算添加什么?你到底想做什么?根据你接受的答案,我真的很好奇你为什么要这样做?
public void Add<T>(T _b) where T : SomeClass
{
}