C#只用属性来解决兔子,不用方法和循环

属性在调用者看来就像一个普通的变量,但作为类的设计者,你可以利用属性来隐藏你类中的一些字段,使外界只能通过属性来访问你的字段,你可以通过属性来限制外界对你的字段的存取,就利用get、set。如果想让用户随意存取你的字段,那么就实现get、set;如果只想让用户读取字段,就只实现get;若只想让用户写字段就只实现set。同时还可以在set和get中对用户传递的值进行一些验证工作,以确保你的字段将含有正确的值。

get和set虽然也是两个方法,但是这次只用这两个来解决兔子问题

       private int num = 0;
        public int Num
        {
            get
            {
                if (num == 1 || num == 2)
                    return 1;
                int n = num;

                int nn =0;
                Num = n - 1;
                nn += Num;
                Num = n - 2;
                nn += Num;

                num = n;
                return nn;
            }
            set
            {
                num = value;
            }
        }
        static void Main(string[] args)
        {
            Program program = new Program();
            for (int i = 1; i <= 10; i++)
            {
                program.Num = i;
                Console.Write($"{program.Num} ");
            }
        }

实现其实还是递归,但是是通过get方法实现,加上get,set用起来比较特殊,看着很牛逼实则没卵用:joy:

我对属性的理解就是在

=左边触发set方法

=右边触发get方法

        private int num = 0;
        public int Num
        {
            get
            {
                if (num == 1 || num == 2)
                    return 1;
                return (Num = num - 1) + (Num = num - 2);
            }
            set
            {
                num = value;
            }
        }

我刚开始是这样写,发现set方法不会触发

个人博客:33博客

微信公众号:33技术客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值