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
{

}