16. 属性
属性:
本质就是一个“特殊”的方法。采用 PascalCase 命名方式。
1、什么是属性:
在 C# 中,我们可以非常自由的、毫无限制的访问公有字段,但在一些场合中,我们可能希望限制给字段赋予某个范围的值、或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态,这些单靠字段是无法做到的,于是就有了属性,属性中包含两个块:set 和 get。
2、属性的作用:
保护字段,对字段的取值与赋值进行限定。
3、属性的格式:
属性往往被声明在字段的下方,并且将字段私有化。
1 //例1:创建字段生成属性 2 public string _name; 3 public string _gender; 4 5 //声明属性,往往通过属性访问字段 6 public string Gender 7 { 8 get //读。可用于对取值的限定,返回属性值 9 { 10 return _gender; 11 } 12 set //写。可用于对赋值的限定,分配新值 13 { 14 _gender = value; 15 } 16 }
1 //例2:对字段的取值与赋值进行限定 2 class Program 3 { 4 private int _Age;//年龄 5 6 //属性 7 public int Age 8 { 9 get 10 if (value >0 && value <100) 11 { 12 return _Age; 13 } 14 15 set 16 { 17 { 18 _Age = value; 19 } 20 else 21 { 22 Age = 18; 23 } 24 } 25 } 26 //“构造函数”初始化字段 27 public Program() 28 { 29 _Age = 20; 30 } 31 32 //显示结果 33 public void DisplayInfo() 34 { 35 Console.WriteLine("Age ={0}",_Age); 36 } 37 static void Main(string[] args) 38 { 39 Program p = new Program(); 40 p.Age = 25; 41 p.DisplayInfo(); 42 Console.ReadKey(); 43 } 44 }