【发布时间】:2010-04-16 07:44:10
【问题描述】:
我想用自定义属性装饰我的方法和 GUI 控件。我想知道属性如何消耗内存或影响应用程序性能。属性的生命周期是什么。意味着当一个类的对象在方法、属性和其自身中具有自定义属性时。被实例化然后被释放。如果所有自定义属性实例也随着对象的解构而被处理,还是它们仍然保留在内存中?
【问题讨论】:
标签: c# performance custom-attributes
我想用自定义属性装饰我的方法和 GUI 控件。我想知道属性如何消耗内存或影响应用程序性能。属性的生命周期是什么。意味着当一个类的对象在方法、属性和其自身中具有自定义属性时。被实例化然后被释放。如果所有自定义属性实例也随着对象的解构而被处理,还是它们仍然保留在内存中?
【问题讨论】:
标签: c# performance custom-attributes
属性存在于类型上,而不是对象实例上,因此属性实例的生命周期与对象实例的生命周期无关。
如果您反复使用反射来访问大量使用的代码中的相同属性,那么在代码中大量使用属性可能会成为瓶颈。这很容易通过缓存来解决。缓存的具体方式和时间取决于您的应用程序和环境。
一般来说,属性为常见的编程场景提供了很好的解决方案,并且如果使用得当,不会导致内存或性能瓶颈。
【讨论】: