我被赋予了一项任务,它涉及到(重点是涉及,它不仅仅是制作一个在树结构中保存数据的程序),制作一个保存数据的树结构,而且确定如何做,所以我查找它。
在本教程中,我正在阅读作者提供的代码,但它假定您了解C# (它说明了,但没有说明到什么程度,我相信我的理解低于作者的意思)。
我想向我解释的代码:
public class Node<T>为什么在上面的代码中有一个<T>?这是什么意思?是干什么的呢?它如何影响类(请查看完整的类,以获得进一步的洞察力)。我假设它是链接到下面的代码?
private T data;
public Node(T data) : this(data, null) {}上面的代码是过载吗?冒号(:)对代码做了什么?
类中的所有代码:
public class Node<T>
{
// Private member-variables
private T data;
private NodeList<T> neighbors = null;
public Node() {}
public Node(T data) : this(data, null) {}
public Node(T data, NodeList<T> neighbors)
{
this.data = data;
this.neighbors = neighbors;
}
public T Value
{
get
{
return data;
}
set
{
data = value;
}
}
protected NodeList<T> Neighbors
{
get
{
return neighbors;
}
set
{
neighbors = value;
}
}
}
}关于代码如何在类中链接在一起的一般解释也会受到赞赏,但如果不是,我想我可以理解它。
发布于 2014-02-21 12:31:10
<T>表示它是可以传递类型的泛型类。例如,您可以构造Node类的实例,如下所示:
var node = new Node<string>();然后编译器将T的所有实例视为string。它允许您为多个不同类型重用代码。
泛型是一个相当大的主题,可以在StackOverflow的文章中讨论,所以我建议你阅读一下这篇文章。MSDN有一个很好的指南,您可以阅读这里。
public Node(T data) : this(data, null) {}中的冒号允许您链接构造函数。
在您的例子中,它调用this的事实意味着构造函数在同一个实例中。您还会遇到base,这将允许您调用类的直接祖先中的构造函数。
https://stackoverflow.com/questions/21934540
复制相似问题