一般属性与自动属性区别: 先看示例代码 一般属性 自动属性 class A { private int id; public int Id { get { return id; } set { id=value; } } }class A { public int Id { get; set; } } C#中用get和set对类的属性进行访问和设置,保障类中数据的安全。自动属性是不对字段进行逻辑验证的操作.由于自动属性可以省略后备字段,用自动属性,代码一般属性简明。这样子写,这两种方法没区别.那么什么情况下用一般写法 什么情况下用自动写法? 你需要对这个变量做一些限制的时候 比如:要限制字段长度为5个字符以内class A{ private int id; public int Id { get{return id ;} set{ if(value.Length<=5){ id=value ; }} } } 简单的不需要限制,可以直接存取属性可以用自动属性,需要做出限制的就采用一般属性。 使用public,而不使用get/set,的确同样可以做到设置/读取,而使用get/set,最主要的是基于oop思想编程,使得“属性和行为分离”。 通过get/set可以设置某属性只读,也可以控制到某一层可读/可写,也可以通过设置条件使数据合法等。 class A { private int id; public int Id { get{return id;} protected set { if(value>=0) { id=value; } } } } 上述例子不使用get/set也同样可以做到,不过get/set使用起来更方便