Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 解释一些代码[二叉树,节点]_C#_Data Structures_Tree - Fatal编程技术网

C# 解释一些代码[二叉树,节点]

C# 解释一些代码[二叉树,节点],c#,data-structures,tree,C#,Data Structures,Tree,我被赋予了一项任务,它涉及(重点是涉及,它不仅仅是制作一个以树形结构保存数据的程序)制作一个保存数据的树形结构,而是确定如何做到这一点我查阅了它 在本教程中,我正在阅读作者提供的代码,但它假设您对C#有一定的理解(它指出,但没有达到什么程度,我相信我的理解低于作者的意思) 我想向我解释的代码: public class Node<T> 上述代码是否过载?冒号(:)对代码有什么作用 类中的所有代码: public class Node<T> { // P

我被赋予了一项任务,它涉及(重点是涉及,它不仅仅是制作一个以树形结构保存数据的程序)制作一个保存数据的树形结构,而是确定如何做到这一点我查阅了它

在本教程中,我正在阅读作者提供的代码,但它假设您对C#有一定的理解(它指出,但没有达到什么程度,我相信我的理解低于作者的意思)

我想向我解释的代码:

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>();