Des*_*sus 25
属性是方法的语法糖.考虑一下:
我有一个属性:
String PropertyA { get; set; }
Run Code Online (Sandbox Code Playgroud)
在运行时,这变成这样的:
String get_PropertyA() { ... }
void set_PropertyA(String value) { ... }
Run Code Online (Sandbox Code Playgroud)
请注意,"..."表示代码生成器将放在那里的代码.实际上,我所说的是属性在C#之外并不存在,因为它们使用我的示例中指示的对流编译为方法.要确认我说的是什么,您可以使用反射并查看反射代码的外观.
然而,如果属性在实现中做了一些非常重要的事情,那么将属性放在接口上可能是不好的做法.例如,如果我想设置变量并更新其他变量,或者由于内部条件而设置属性可能会拒绝我的属性赋值,则不应使用属性.我认为这是一个适用于接口之外的一般规则.
bry*_*mac 11
界面中的属性很好
看到:
http://msdn.microsoft.com/en-us/library/ms173156.aspx
接口由方法,属性,事件,索引器或这四种成员类型的任意组合组成.接口不能包含常量,字段,运算符,实例构造函数,析构函数或类型.它不能包含静态成员.接口成员自动公开,并且不能包含任何访问修饰符.
| 归档时间: |
|
| 查看次数: |
30395 次 |
| 最近记录: |