gpt4 book ai didi

c# - .Net 属性功能是在编译时还是在运行时或两者都使用?

转载 作者:可可西里 更新时间:2023-11-01 08:36:54 24 4
gpt4 key购买 nike

在 .Net 中,属性功能是在编译时还是运行时或两者都使用?能举几个例子吗?

最佳答案

大多数 仅在运行时使用。编译器使用的数量非常有限,包括:

  • [Conditional(...)] - 省略每个构建符号的方法调用
  • [Obsolete(...)] - 发出警告/错误作为构建输出
  • [Serializable] - 写成 CLI 标志
  • [Extension] - 用于扩展方法
  • [AttributeUsage] - 影响属性的应用方式
  • -

编译器在创建程序集文件时会使用诸如 [AssemblyVersion][AssemblyFileVersion] 等一系列内容,以及诸如 [InternalsVisibleTo] 影响可访问性。

此外,像 PostSharp 这样的工具会根据属性执行额外的编译后步骤。

编译器可能会添加一些其他属性到生成的类型/方法(用于匿名方法/类型、迭代器 block 等)。

关于c# - .Net 属性功能是在编译时还是在运行时或两者都使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com