在类本身中定义类的变量的意义是什么?是递归还是强类型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BinaryTree
{
     public class Tree<TItem> : IEnumerable<TItem> where TItem : IComparable<TItem>
     {
         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)
             {
                 if (this.LeftTree == null)
                 {
                     this.LeftTree = new Tree<TItem>(newItem);
                 }
                 else
                 {
                     this.LeftTree.Insert(newItem);
                 }
             }
             else
             {
                 if (this.RightTree == null)
                 {
                     this.RightTree = new Tree<TItem>(newItem);
                 }
                 else
                 {
                     this.RightTree.Insert(newItem);
                 }
             }
         }
         public void WalkTree()
         {
             if (this.LeftTree != null)
             {
                 this.LeftTree.WalkTree();
             }
             Console.WriteLine(this.NodeData.ToString());
             if (this.RightTree != null)
             {
                 this.RightTree.WalkTree();
             }
         }
         public TItem NodeData { get; set; }
         public Tree<TItem> LeftTree { get; set; }
         public Tree<TItem> RightTree { get; set; }
         #region IEnumerable<TItem> Members
         IEnumerator<TItem> IEnumerable<TItem>.GetEnumerator()
         {
             if (this.LeftTree != null)
             {
                 foreach (TItem item in this.LeftTree)
                 {
                     yield return item;
                 }
             }
             yield return this.NodeData;
             if (this.RightTree != null)
             {
                 foreach (TItem item in this.RightTree)
                 {
                     yield return item;
                 }
             }
         }
         #endregion
         #region IEnumerable Members
         System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
         {
             throw new NotImplementedException();
         }
         #endregion
     }
}
请问在此段代码中,在类本身中定义类的变量的主要作用是什么?是递归还是强类型,通常我们会在什么情况这样使用?
------解决方案--------------------类中可以引用任何类型——只要编译器可以找到它的定义就行了。没有说过需要管它是不是自己。这跟递归没有关系,声明一个属性又不是产生一个新的类型,怎么可能跟递归有关系呢?
------解决方案--------------------
用途有很多种,
比如定义一个“人”的类,然后这个“人”有“父亲”、“母亲”属性,
而父亲母亲都属于人,
class people{
  people monther;
  people father;
}
这样通过 monther 属性就可以获取这个人的母亲的信息。
------解决方案--------------------
递归:一个函数中直接或者间接调用自身。
强类型:严