作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在 .Net 中,属性功能是在编译时还是运行时或两者都使用?能举几个例子吗?
最佳答案
大多数 仅在运行时使用。编译器使用的数量非常有限,包括:
[Conditional(...)]
- 省略每个构建符号的方法调用[Obsolete(...)]
- 发出警告/错误作为构建输出[Serializable]
- 写成 CLI 标志[Extension]
- 用于扩展方法[AttributeUsage]
- 影响属性的应用方式编译器在创建程序集文件时会使用诸如 [AssemblyVersion]
、[AssemblyFileVersion]
等一系列内容,以及诸如 [InternalsVisibleTo]
影响可访问性。
此外,像 PostSharp 这样的工具会根据属性执行额外的编译后步骤。
编译器可能会添加一些其他属性到生成的类型/方法(用于匿名方法/类型、迭代器 block 等)。
关于c# - .Net 属性功能是在编译时还是在运行时或两者都使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311719/
我是一名优秀的程序员,十分优秀!