zoukankan      html  css  js  c++  java
  • [C#1] 5属性

    1.无参属性

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

    1:get访问器方法,定义get时才有;
    2:set访问器方法,定义set时才有;
    3:关于属性的元数据,这项总是存在;

    这写元数据信息中包括一些标记和属性类型,并有一个对get和set访问器方法的引用,仅仅为属性和它的访问器之间提供了一层关联关系。CLR本身并不使用它们,在运行时仅需要访问器方法即可。采用属性的代码不应有过复杂结构和太长的执行时间。应该相应的简短快速,对于简单的get和set,JIT编译器会将代码进行内联[inline]处理优化。

    2.无参属性[索引器]

    索引器可以看作是对"[]"操作符的一种重载方式。CLR同样对待索引器和无参属性。默认产生get_Item、set_Item方法,其中Item是编译器默认的名称,可通过应用Sysetm.Runtime.CompilerDervices.IndexNameAttribute特性来改变默认的Item名字。System,String类型就是一个例子,String类型的索引器名字叫做Chars,而不是Item。

    C#没有静态索引器[CLR支持],对CLR来说,属性和索引器仅仅是定义在类型中的一些方法而已

  • 相关阅读:
    libevent-2.0.so.5 (安装MEMCACHED问题)
    MySQL的show语句大全
    远程客户端连接MysqL数据库太慢解决方案
    用SQL命令查看Mysql数据库大小
    elasticsearch-head安装及启动
    logstash收集IIS日志
    备份并删除7天以前数据
    shell脚本递归压缩实践
    二目运算符 “->”
    关于int main( int argc, char *argv[] )
  • 原文地址:https://www.cnblogs.com/linianhui/p/csharp1_property.html
Copyright © 2011-2022 走看看