【发布时间】:2015-06-26 08:19:28
【问题描述】:
我创建了一个具有通用实现的单链表。但是 Add(..) 方法给出编译错误:
错误 4 无法将类型 'ds.MyNode' 隐式转换为 'ds.MyNode'
以下代码实现:
public class MyNode<T>
{
public MyNode(T content)
{
Content = content;
}
public T Content { get; set; }
public MyNode<T> Next { get; set; }
}
public class MyLinkedList<T>
{
private int size;
private MyNode<T> head;
private MyNode<T> tail;
public MyNode<T> Tail
{
get { return tail; }
set { tail = value; }
}
public int Count
{
get { return size; }
set { size = value; }
}
public MyNode<T> Head
{
get { return head; }
set { head = value; }
}
public void Add<T>(MyNode<T> node)
{
size++;
if (head == null)
{
head = tail = node;
}
else
{
tail.Next = node;
tail = node;
}
}
}
我不确定我在这里遗漏了什么,该错误令人困惑,因为它所说的两种类型都不能隐式转换是相同的。任何帮助表示赞赏。
我正在针对 .Net 4.0 编译它
谢谢。
【问题讨论】:
-
我认为您不希望这些 setter 公开
-
是的,我同意,但这只是在 SE 上发布的示例代码,所以道具是自动生成的。
标签: c# generics linked-list