public class Person { private string _name; // 私有的,外面碰不到// 写入方法 public void SetName(string value) { if (!string.IsNullOrEmpty(value)) // 加入校验! _name = value; }// 读取方法 public string GetName() { return _name; } } // 调用时: person.SetName("张三"); string n = person.GetName();
进化
public class Person { private string _name;// 这就是属性!把 Get 和 Set 包在一起 public string Name { get { return _name; } // 读取时触发 set { _name = value; } // 赋值时触发,value就是传入的值 } } // 调用时: person.Name = "张三"; (看起来像在操作变量,但实际上走了 set 逻辑)
public class Person {// 编译器会在后台偷偷帮你生成一个隐藏的私有字段// 你只需要告诉它:允许读(get),允许写(set)public string Name { get; set; } }