一般面向对象编程语言都要求成员变量不能直接暴露给外部访问,如下: public class A { public int Age; //这是不好的,待会有程序员可能把-1赋给Age } 为了防止乱赋值,C#设计了一个属性机制,要求把成员变量设为私有,在通过属性来控制成员变量的读写,如下: public class B { private int age; //私有成员变量 public int Age //age的属性 { get{ return age; } //读取器 set{ //写入器 if(value>0) age = value; //value是准备写入的值 } } } 这样Age就像保安一样,挡在age的前面.访问age的时候需要通过Age许可,如下: B b = new B(); b.Age = -1; //这是不行的,-1被带入value,value