C# 解释一些代码[二叉树,节点]
我被赋予了一项任务,它涉及(重点是涉及,它不仅仅是制作一个以树形结构保存数据的程序)制作一个保存数据的树形结构,而是确定如何做到这一点我查阅了它 在本教程中,我正在阅读作者提供的代码,但它假设您对C#有一定的理解(它指出,但没有达到什么程度,我相信我的理解低于作者的意思) 我想向我解释的代码:C# 解释一些代码[二叉树,节点],c#,data-structures,tree,C#,Data Structures,Tree,我被赋予了一项任务,它涉及(重点是涉及,它不仅仅是制作一个以树形结构保存数据的程序)制作一个保存数据的树形结构,而是确定如何做到这一点我查阅了它 在本教程中,我正在阅读作者提供的代码,但它假设您对C#有一定的理解(它指出,但没有达到什么程度,我相信我的理解低于作者的意思) 我想向我解释的代码: public class Node<T> 上述代码是否过载?冒号(:)对代码有什么作用 类中的所有代码: public class Node<T> { // P
public class Node<T>
上述代码是否过载?冒号(:)对代码有什么作用
类中的所有代码:
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;
}
}
}
}
公共类节点
{
//私有成员变量
私有T数据;
私有节点列表邻居=null;
公共节点(){}
公共节点(T data):这个(data,null){}
公共节点(T数据、节点列表邻居)
{
这个数据=数据;
这个。邻居=邻居;
}
公共价值
{
得到
{
返回数据;
}
设置
{
数据=价值;
}
}
保护节点列表邻居
{
得到
{
回归邻居;
}
设置
{
邻居=价值;
}
}
}
}
对代码如何在类中链接在一起的一般性解释也会很受欢迎,但如果不是这样,我想我能够理解。该
表示它是一个可以将类型传递到的泛型类。例如,您可以像这样构造节点
类的实例:
var node = new Node<string>();
var节点=新节点();
然后,编译器将T
的所有实例视为string
。它允许您为多种不同类型重用代码
泛型是StackOverflow文章中涉及的一个相当大的主题,所以我建议你仔细阅读。MSDN有一个很好的指南,你可以阅读
公共节点(T data)中的冒号(data,null){}
允许您链接构造函数
在您的例子中,它调用
this
意味着构造函数在同一个实例中。您还会遇到base
,这将允许您调用类的直接祖先中的构造函数。啊,我明白了。谢谢你的链接,我会在回复你后再查看。你说的“对不起”是什么意思?谢谢你的回复!链接意味着将它们链接在一起。首先调用链式构造函数,然后调用构造函数体。
var node = new Node<string>();