C#在泛型类中定义自动属性
我是C#的新手,我正在完成约翰·夏普写的《微软Visual C#2013逐步》一书。 在一次关于“泛型”的练习中,我发现以下代码:C#在泛型类中定义自动属性,c#,generics,properties,C#,Generics,Properties,我是C#的新手,我正在完成约翰·夏普写的《微软Visual C#2013逐步》一书。 在一次关于“泛型”的练习中,我发现以下代码: public class Tree<TItem> where TItem : IComparable<TItem> { public TItem NodeData { get; set; } public Tree<TItem> LeftTree { get; set; } public Tree<T
public class Tree<TItem> where TItem : IComparable<TItem>
{
public TItem NodeData { get; set; }
public Tree<TItem> LeftTree { get; set; }
public Tree<TItem> RightTree { get; set; }
public Tree(TItem nodeValue)
{
this.NodeData = nodeValue;
this.LeftTree = null;
this.RightTree = null;
}
public void Insert(TItem newItem)
{
TItem currentNodeValue = this.NodeData;
if (currentNodeValue.CompareTo(newItem) > 0)
{
// Insert the new item into the left subtree
// code here....
}
else
{
// Insert the new item into the right subtree
// code here....
}
}
}
在这方面的其他人:
public Tree<TItem> LeftTree { get; set; }
public Tree<TItem> RightTree { get; set; }
公共树LeftTree{get;set;}
公共树RightTree{get;set;}
有人能解释为什么吗?谢谢这些属性用于不同的用途。顾名思义:
用于简化树中存储的信息NodeData
/LeftTree
用于简化树的拓扑结构-每个当前对象(节点)基本上是以自身为根的树的根。因为它是一个二叉树,所以它有两个直接的后代——左节点和右节点李>RightTree
NodeData
只是一个“类型”TItem
。左侧和右侧节点的类型为Tree
,以确保在树的任何深度都存储TItem
类型的数据
为了使它更简单,让我们假设您想要创建一个整数的二叉树。然后,您可以通过以下方式对其进行建模:
public class Tree
{
public int Data { get; set; }
public Tree Left {get; set; }
public Tree Right {get; set; }
}
我认为通过这种方式,您可以真正了解
数据
和左
,右
属性之间的根本区别。这些属性用于不同的事情。顾名思义:
用于简化树中存储的信息NodeData
/LeftTree
用于简化树的拓扑结构-每个当前对象(节点)基本上是以自身为根的树的根。因为它是一个二叉树,所以它有两个直接的后代——左节点和右节点李>RightTree
NodeData
只是一个“类型”TItem
。左侧和右侧节点的类型为Tree
,以确保在树的任何深度都存储TItem
类型的数据
为了使它更简单,让我们假设您想要创建一个整数的二叉树。然后,您可以通过以下方式对其进行建模:
public class Tree
{
public int Data { get; set; }
public Tree Left {get; set; }
public Tree Right {get; set; }
}
我认为通过这种方式,您可以真正了解
数据
和左
,右
属性之间的根本区别。他定义了一棵树。NodeData属性是当前节点值。然后,如果该值小于当前节点的值,则将新值置于左侧,否则置于右侧。如果LeftValue和RightValue的类型是Tree,则它应该具有父子结构。这个类允许创建类似二叉树的数据结构。他定义了一棵树。NodeData属性是当前节点值。然后,如果该值小于当前节点的值,则将新值置于左侧,否则置于右侧。如果LeftValue和RightValue的类型是Tree,则它应该具有父子结构。该类允许创建类似二叉树的数据结构