【发布时间】:2010-12-14 19:16:15
【问题描述】:
1.. 使用属性是否会导致性能开销?想想这样的课程:
public class MyClass
{
int Count {get;set;}
}
它有 10 个属性(属性是类,属性类本身比 MyClass 本身大得多,例如:
public class FirstAttribute : Attribute
{
int A,B,C,D,E,F,G,H,I,J ... {get;set;}
}
2.. 每次实例化MyClass 时,这些属性中的 10 个是否会成为内存开销? (FirstAttribute 的大小是 MyClass 的 10 倍,将用其中的 10 个进行装饰,因此与装饰在其上的属性的总大小相比,使实际对象本身非常小。)这是一个问题吗?
3.. 这种情况对于结构体(结构体是值类型,属性是引用类型)会有什么不同吗?
4.. 与它们所附加的对象相关的属性存储在内存中的什么位置?他们是怎么联系在一起的?
5.. 属性是在MyClass 初始化后立即初始化还是在您使用反射检索它们时初始化?
【问题讨论】:
标签: c# .net performance reflection attributes