我正在尝试开发一个通用的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的构造函数中,我收到错误消息“参数类型null不可分配给参数类型TE”。

在这种情况下如何分配空值?

最佳答案

您需要告诉编译器TEclass,表示引用类型。对于无限制类型,TE也可以是不能分配给null的值类型:

public class BoundedListNode<TE> where TE : class


然后,您将可以在构造函数中将null分配为参数:

关于c# - 参数类型null不能分配给参数类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33064721/

10-11 04:58