C#里public int Size { get; set; } 与 public int Size ; 有什么区别?感觉是自欺欺人啊!

2025-04-01 03:11:32
推荐回答(2个)
回答1:

public int Size { get; set; }

(1)变量取值和设置值,只能给它什么就是什么,一点逻辑判断也没有,而我们可以通过get和set在内部做一些处理,过滤掉一些不合理的数据,也减少异常的发生。
(2)有时,我们并不想要原模原样的变量值,可能需要对它加工的数据,如以上Grade方法,我们可以用get,当然,这种加工后的数据,是不允许用户人为改变的(是通过算法算出来的),所以不能开放给他set方法。
总之,有了get和set方法,我们调用起来才能更安全,否则,private和protected就没有意义了,因为在类我外部(包括对象调用)都无法调用到private和protected属性。如果把属性都定义成pubic,就太不安全了。

参考 http://zhidao.baidu.com/question/407172320.html

回答2:

没区别,那种都行