C#属性: 利用set实现递归

直接帖代码:

    public  class Bird
    {
        int xdata;

        /// <summary>
        /// 属性的简洁写法,等同于下面的xData方式
        /// </summary>
        public int Data { set; get; }

        /// <summary>
        /// 属性的正常写法
        /// </summary>
        public int xData
        {
            set { xdata = value; }
            get { return xdata; }
        }

        /// <summary>
        /// 属性的递归
        /// </summary>
        public int Type
        {
            set
            {
                if (value < 15)
                {
                    Type = value + 1; //这里会递归调用set
                    Console.WriteLine("value={0}", value);
                }
            }
            
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Bird bd = new Bird();
            bd.Data = 10;
            Console.WriteLine("data = {0}", bd.Data);
            bd.Type = 10;
        }
    }

 运行结果:

 

posted @ 2016-10-04 10:21  时空观察者9号  阅读(404)  评论(0编辑  收藏  举报