.net框架笔记(五)

第10章 属性

一.无参属性

通常被称为属性.

面向对象设计和编程的其中一个原则是数据封装.

 

Code

如果不封装,比如上面的年龄:就会有如下代码:

 

 

Code

 

所以尽可能的封装字段.

当定义一个属性时,编译器会在生成的托管模块中产生以下3项:

1.一个表示属性的get访问器的方法.只有在为属性定义了get访问器方法时,才有这一项.

2.一个表示属性的set访问器的方法,只有在为属性定义了set访问器方法时,才有这一项.

3.一个位于托管模块元数据中的属性定义,不管是只读,只写,或者是读写属性都有这一项.

属性限制:

第一:属性不定义存储位置,所以不能以ref或out参数的形式传递给方法.

第二:属性不能重载.

第三:当调用get访问器时,属性不应该再改变存储变量的状态.

二:含参属性

在C#中称为索引器.通过索引器访问的每个元素都应该和索引器的基类型一致.参数index不必须是int类型,但因为索引器通常用于数组索引,所以index通常为int.

set访问器能接收隐含参数value,该参数包含赋给指定下标的元素的值.

使用索引器有两个限制.第一,因为索引器没有定义存储位置,所以索引器产生的值不能作为 ref参数或out参数传递给方法.第二:索引器必须是类的实例成员,不能被声明为static类型.

三:对访问器使用访问限定符

第一:只能改变set或get访问器之一的访问限定符,而不能是两者.

第二:访问限定符必须比属性或索引器的访问限制更严格.

 

posted @ 2008-09-27 13:14  打瞌睡的耶稣  阅读(316)  评论(1)    收藏  举报