我正在尝试开发一个通用的BoundedList类,为此我创建了一个通用的BoundedListNode类。我的BoundedList类如下:
class BoundedList<TE>
{
private BoundedListNode<TE> _startNode;
private BoundedListNode<TE> _lastUsedNode;
protected Dictionary<TE, BoundedListNode<TE>> Pointer;
public BoundedList(int capacity)
{
Pointer = new Dictionary<TE, BoundedListNode<TE>>(capacity);
_startNode = new BoundedListNode<TE>(null);
_lastUsedNode = _startNode;
}
}
在_startNode的构造函数中,我得到了错误&#34;参数类型为TE&#34;的参数类型为null。
在这种情况下如何指定null?
答案 0 :(得分:6)
您需要告诉编译器TE
是class
,意思是引用类型。对于无界类型,TE
也可以是值类型,不能分配给null
:
public class BoundedListNode<TE> where TE : class
然后,您将能够在构造函数中将null
指定为参数: