c#属性的赋值问题:为什么属性只读,但是构造函数却还是可以赋值

仅仅是自己的实习笔记,请勿较真。

实习被问到了这个问题,支支吾吾的没有回答出,后面在网上查找答案,看了一圈,还是不觉明厉,后面学了一段时间,有了自己的想法。

只读一般是分为三种情况,const,readonly,和get访问器,三者都可在自己的生命域里赋值,但是编译器也是可以在构造函数里进行初始化赋值的(这个是死记的),这个是应用于只想一次赋值的情况,避免对该类属性的修改。

之前还看到过一种说法,是说因为大小写问题,构造函数是给distance(这里是小写)变量赋值,而不是给(下面两张图是别人提供的)



而实际上,我并没有分大小写


而朋友发给我的图,我发现了一个问题,首先他传入了值nameChar,那么这样就没有达到get封装想要的效果,你这不是从外界想要改变它的值么?

第二个问题,Book.distance(这个为什么报错,我并不是很清楚),但是我发现,改成Book好像都报错吧,跟是不是只读没有关系


不过经过这一次,我也收获了很多,还是要多去交流交流。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值