C#基础:属性
属性(Property)是类、结构、接口的命名成员。类或结构中的成员变量或成员方法称为域(Field),而属性是域的扩展,并且可以使用相同的语法来访问。它们使用访问器(Accessors)让私有域的值可以被读写或操作。
属性不会直接锁定私有域的存储位置。相反,它们具有可读写或计算它们的值的访问器。例如,有一个名为Student的类,有age、name、code的私有域。我们不能在类的范围外直接访问这些私有域,但是我们可以拥有可以访问这些私有域的属性。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。属性的访问器包含有助于获取或设置属性的可执行语句。访问器声明可包含一个get访问器,一个set访问器,或同时包含两者。例如:
1 //声明类型为string的Code属性 2 public string Code 3 { 4 get 5 { 6 return code; 7 } 8 set 9 { 10 code = value; 11 } 12 }
下面展示一个实例,通过属性来访问和修改一个类中的某个特定的Private变量:
1 using System; 2 3 class Student 4 { 5 private string name = "inkice"; 6 7 //声明类型为string的Name属性 8 public string Name 9 { 10 get 11 { 12 return name; 13 } 14 set 15 { 16 name = value; 17 } 18 } 19 20 public override string ToString() 21 { 22 return "Name = " + Name; 23 } 24 } 25 26 class Demo 27 { 28 public static void Main() 29 { 30 //实例化一个新的Student对象 31 Student s = new Student(); 32 //通过属性设置name的值 33 s.Name = "Last_Prism"; 34 Console.WriteLine(s); 35 Console.ReadKey(); 36 } 37 }
当然,属性也对应着有抽象属性。一个抽象类可以拥有抽象属性,这些属性应当在派生类中被实现。例如:
1 public abstract class Person 2 { 3 public abstract string Name 4 { 5 get; 6 set; 7 } 8 } 9 10 class Student : Person 11 { 12 private string name; 13 14 public override string Name 15 { 16 get 17 { 18 return name 19 }; 20 set 21 { 22 name = value 23 }; 24 } 25 }
此外,在新版本的C#语言中,我们的属性可以简写了。例如:
1 public string Name { get; set; } 2 public string Color { get; private set; }

更多精彩