c#自定义特性占资源么
2个回答
展开全部
C#中的各种特性(Attribute),包括自定义特性,是用来指示C#编译器如何生成被特性修饰的代码。换句话说,特性是用来指导C#编译器如何完成编译工作的。
因此,从理论上说,编译后源代码中的特性本身不会占用资源,只会影响到被特性修饰的代码;实际中,由于程序集本身的特性,例如为了满足反射操作需要,编译后的特性或多或少会占用资源。
因此,从理论上说,编译后源代码中的特性本身不会占用资源,只会影响到被特性修饰的代码;实际中,由于程序集本身的特性,例如为了满足反射操作需要,编译后的特性或多或少会占用资源。
追问
对运行时性能有影响么?就像反射那样
追答
已经生产程序集后,运行时,特性本身对性能几乎没有什么影响,因为特性是指示C#编译器进行编译的指令,一旦编译结束,生产了程序集,源代码中定义的特性,在程序集就“消失”了,意思是:除非用反射去查看程序集,否则,根本不知道程序中是否有特性的存在。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询