tep*_*tep 8 c# performance xna attributes metadata
我从网上阅读有关C#属性和元数据的教程.这很酷,但我想知道它的含义.
加载程序集时是否加载(自定义)属性?或者仅当您使用反射来检索元数据时?
似乎属性增加了代码大小的总和,因为它被编译到可执行文件中?这是正确的吗?
是否可以拥有编译时属性?即只有定义了DEBUG才会应用属性?
我知道有人这样做:
#if DEBUG
[MyCustomAttribute]
#endif
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更好的方法?
谢谢!
-Stephanus
属性有两部分,它们的代码及其构造函数参数和属性数据.代码存储在程序集的IL中,数据存储在程序集元数据中.如果未使用某个属性,则只占用一些虚拟内存空间,但不需要任何计算机资源.
在使用GetCustomAttributes()方法之前没有任何反应.然后,属性类的代码即时编译,就像程序集中的常规代码一样.使用元数据中的属性数据调用构造函数和属性setter.当内存管理器映射IL,机器代码和元数据页面时,您将使用一些RAM.
归档时间: |
|
查看次数: |
1837 次 |
最近记录: |