C#:常规属性和自动实现的属性

王朝学院·作者佚名  2016-05-17
窄屏简体版  字體: 小  |  中  |  大  |  超大  

C#:常规属性和自动实现的属性根据属性的实现方式,属性可分为自动实现的属性和常规属性。

常规属性需要具体的人为的实现get访问器或者set访问器,而且一般需要有一个字段与之相对应;而自动实现的属性的get和set访问器的实现部分被省略掉了,而且代码中不需要有相对应的字段。

常规属性:

public class Person { //----------------------- //普通属性 //----------------------- PRivate string name; /// <summary>姓名</summary> public string Name { get { return this.name; } set { this.name = value; } } }

自动实现的属性:

public class Person { //----------------------- //自动实现的属性 //----------------------- /// <summary>姓名</summary> public string Name { get; set; } }

可以给自动实现的属性的get访问器或者set访问器添加访问权限修饰符(private,protected,internal),以控制该属性的访问权限。

(*注意给get或者set访问器添加的访问权限修饰符的访问权限,必须比该属性整体的访问属性的访问权限要小)

通过给get或者set访问器添加的访问权限修饰符,实现只读或者只写:

public class Person { //----------------------- //自动实现的属性实现只读 //----------------------- /// <summary>姓名</summary> public string Name { get; private set; } }

public class Person { //----------------------- //自动实现的属性实现只写 //----------------------- /// <summary>姓名</summary> public string Name { private get; set; } }

自动实现的属性有以下几点需要注意:

①必须同时实现set访问器和get访问器,缺一不可;

②自动实现的属性,编译器在运行时会自动生成一个私有的字段,这个自动生成的字段不能够直接访问;

③当需要实现对数据的合法性验证或者其它特殊处理的时候不能用自动实现的属性。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航