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

Posted 时空观察者9号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
        }
    }

 运行结果:

 

以上是关于C#属性: 利用set实现递归的主要内容,如果未能解决你的问题,请参考以下文章

c#利用反射给字段属性赋值

C#利用反射来判断对象是否包含某个属性的实现方法

C#利用反射来判断对象是否包含某个属性的实现方法

C#利用反射实现两个类的对象之间相同属性的值的复制

C# - 递归/反射属性值

是否可以动态编译和执行 C# 代码片段?