public class P1 { public int Age; }
把字段的访问修饰符设置成public破坏了面向对象程序设计(OOP)的封装性,所以得改成
public class P2 { int _Age; public int Age { get { return _Age; } set { _Age = value; } } }
这样其他类可以通过属性Age访问字段_Age了。
当然,您还可以加上验证
public class P3 { int _Age; public int Age { get { return _Age; } set { if (value > 0 && value < 150) _Age = value; } } }
还可以设置成只读,只写等。
好心的微软为了让您方便,P2还可以写成
public class P2 { public int Age { get; set; } }
效果一样,相当优雅,使用方便,然后就非常熟练了,然后就出现了P3的情形
public class P3 { private int Age { get; set; } }
这样的私有属性,是不是不应该有?