《 C#语言学习笔记》——自动属性

属性是访问对象状态的首选方式,因为它们禁止外部代码实现对象内部的数据存储机制。属性还对内部数据的访问方式有了更多控制。一般以非常标准的方式定义属性,即通过一个公共属性直接访问一个私有成员。

利用自动属性可以加快输入速度,可以用简化的语法声明属性,C#编译器会添加未输入的内容。具体而言,编译器会声明一个用于存储属性的私有字段,并在属性的get和set块中使用该字段,我们无需考虑细节。

使用下面的代码结构就可以定义一个自动属性:

public MyIntProp
{
    get;
    set;
}

我们以通常的方式定义属性的可访问性、类型和名称,但没有给get和set块提供执行代码。这些块的执行代码(和底层代码)都由编译器提供。

使用自动属性时,只能通过属性访问数据,因为我们不知道底层私有字段的名称(该名称是在编译期间定义的),无法访问它。但这并不是一个限制,因为可以直接使用属性名。自动属性的唯一限制是它们必须包含get和set访问器,不能用这种方式定义只读或只写属性。

posted @ 2018-06-16 11:45  haxianhe  阅读(479)  评论(0编辑  收藏  举报