我在下面的代码中找不到什么错误,遇到了以下错误
无法将类型'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;
}
}
答案 0 :(得分:7)
您需要声明Insert
方法而不引入额外的泛型类型,例如:
internal void Insert(T data)
{
...
答案 1 :(得分:0)
我认为,Insert
方法不需要通用限定符,因为您将类型传递给了方法。
internal void Insert(T data)