首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解释一些代码[二叉树,节点]

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

Stack Overflow用户
提问于 2014-02-21 12:28:50
回答 1查看 130关注 0票数 0

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

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

我想向我解释的代码:

代码语言:javascript
复制
public class Node<T>

为什么在上面的代码中有一个<T>?这是什么意思?是干什么的呢?它如何影响类(请查看完整的类,以获得进一步的洞察力)。我假设它是链接到下面的代码?

代码语言:javascript
复制
private T data;

public Node(T data) : this(data, null) {}

上面的代码是过载吗?冒号(:)对代码做了什么?

类中的所有代码:

代码语言:javascript
复制
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;
            }
        }
    }
}

关于代码如何在类中链接在一起的一般解释也会受到赞赏,但如果不是,我想我可以理解它。

EN

回答 1

Stack Overflow用户

发布于 2014-02-21 12:31:10

<T>表示它是可以传递类型的泛型类。例如,您可以构造Node类的实例,如下所示:

代码语言:javascript
复制
var node = new Node<string>();

然后编译器将T的所有实例视为string。它允许您为多个不同类型重用代码。

泛型是一个相当大的主题,可以在StackOverflow的文章中讨论,所以我建议你阅读一下这篇文章。MSDN有一个很好的指南,您可以阅读这里

public Node(T data) : this(data, null) {}中的冒号允许您链接构造函数。

在您的例子中,它调用this的事实意味着构造函数在同一个实例中。您还会遇到base,这将允许您调用类的直接祖先中的构造函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21934540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档