调用泛型函数并分配泛型变量时发生编译错误

时间:2019-06-08 16:01:33

标签: c#

我在下面的代码中找不到什么错误,遇到了以下错误
无法将类型'DelegatePractice.Node'隐式转换为'DelegatePractice.Node'

不能将类型'DelegatePractice.Node'隐式转换为'DelegatePractice.Node'

class LinkedList<T>
{
    internal Node<T> node;
   internal void Insert<T>(T data)
    {

        Node<T> n = new Node<T>(data);
        if (node == null) node = n;//compile error
        else
        {
            Node<T> lastNode = getLastNode(this);//compile error
            lastNode.next = n; 
        }

    }

    internal Node<T> getLastNode(LinkedList<T> linkedList)
    {
        Node<T> tempNode = linkedList.node;
        while (tempNode.next != null)
        {
            tempNode = tempNode.next;
        }
        return tempNode;
    }
}
class Node<T>
{
   public T data;
   public Node<T> next;
    public Node(T d)
    {
        data = d;next = null;
    }   
}

2 个答案:

答案 0 :(得分:7)

您需要声明Insert方法而不引入额外的泛型类型,例如:

internal void Insert(T data)
{
    ...

答案 1 :(得分:0)

我认为,Insert方法不需要通用限定符,因为您将类型传递给了方法。

internal void Insert(T data)

https://gist.github.com/f3/55283bb99e131eaa48eb348fd9647ee7