C#里public int Size { get; set; } 与 public int Size ; 有什么区别?感觉是自欺欺人啊!
如果你定义成这样privateintsize;publicintSize{get{returnsize;}set{size=value;}}到情有可原,但是定义成publ...
如果你定义成这样
private int size;
public int Size
{
get { return size; }
set { size = value; }
}
到情有可原,但是定义成public int Size { get; set; }这样与public int Size ;有什么区别呢? 展开
private int size;
public int Size
{
get { return size; }
set { size = value; }
}
到情有可原,但是定义成public int Size { get; set; }这样与public int Size ;有什么区别呢? 展开
2个回答
展开全部
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
(1)变量取值和设置值,只能给它什么就是什么,一点逻辑判断也没有,而我们可以通过get和set在内部做一些处理,过滤掉一些不合理的数据,也减少异常的发生。
(2)有时,我们并不想要原模原样的变量值,可能需要对它加工的数据,如以上Grade方法,我们可以用get,当然,这种加工后的数据,是不允许用户人为改变的(是通过算法算出来的),所以不能开放给他set方法。
总之,有了get和set方法,我们调用起来才能更安全,否则,private和protected就没有意义了,因为在类我外部(包括对象调用)都无法调用到private和protected属性。如果把属性都定义成pubic,就太不安全了。
参考 http://zhidao.baidu.com/question/407172320.html
追问
你说的我知道啊!但是public int Size { get; set; }这个形式你还怎么去限定它?我没有这个private int size;啊!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询