属性这一技术出现的必要性
在C#语言中出现“属性”这一概念,大家都知道是在这两方面保证数据安全的安全:
·数据的合法性,或者说合乎逻辑性
·数据的可访问性,可读或可写,或者可读既可写
通过“属性“这一技术,既能自定义数据的合法性验证规则,也可以控制字段可读可写性。在这里我们通过比较如下两段代码,哪一个更加安全:代码段2: 很明显,代码段2更加安全,其扩展性也更强,毕竟如果需要修改修改年龄的规则,只需要修改Student类的Age属性的两个访问器就可以了,而众多Student类的使用者便不需要做修改。
Get和Set两个访问器
我们都知道,C#属性的两个访问器:
·Get——获取对象字段的值通过这个访问器,即“可读”的访问器
·Set——为对象字段赋值通过这个访问器,即“可写”的访问器
这个两个访问器可单独使用,也可以一起使用。“=”运算符实际上调用的是两个访问器,可以通过MSIL反汇编程序看到其内部机制,如下图
关于属性的几点注意事项
·属性的数据类型必须与它所访问的字段类型一致
·在Visual Studio 2005中可以通过【重构】-->【封装字段】来快速创建属性
·属性是对字段的封装,而封装有三个好处
1.避免使用非法数据赋值
2.保证数据的完整性
3.避免内部发生修改时,导致那个程序的修改,如,随着人民群众的生活水平的提高,年龄范围可能需要修改为从18岁到120岁,这个时候就只需要修改Student类就可以了,而不需要很多个调用Student对象的类
·一般将类的关键字段封装成属性
在使用类的属性时易犯的一个严重的错误
我们在使用类的属性时,容易犯一个严重的错误,请看如下代码:
上述的代码中,类本身在使用属性,容易出现问题,特别是类自身在给属性赋值时,如果没有实现Set访问器,编译肯定无法通过,在这里我们需要记住一点:类的属性主要是给类的使用者用的,而不是给类本身使用,这里建议使用与属性相关联的字段。
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |