c# – 在.NET中使用属性的性能开销

前端之家收集整理的这篇文章主要介绍了c# – 在.NET中使用属性的性能开销前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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.这些属性中的10个是每次MyClass被实例化时的内存开销? (FirstAttribute是MyClass的大小的10倍,将用其中的10个进行装饰,因此使实际对象本身与其上装饰的属性的总大小相比).这是一个问题吗?

3.这种情况对于结构体来说是不同的(Structs是值类型和属性是引用类型)?

存储在存储器中的与其所附加的对象相关的attibutes在哪里?他们怎么挂在一起?

5.初始化MyClass或使用反射检索它们时,是否初始化属性

解决方法

>在空间方面有一小部分开销,但并不是很多 – 属性不会妨碍正常执行. >否,属性会对类型执行操作,而不是实例,因此您不会通过使用大量“大”属性占用大量内存. (我不知道你是否得到一个具体类型的泛型,或一个通用类型定义 – 我会期望后者…) >不,因为1的答案. >属性不附加到对象 – 它们附加到类型.我不知道他们存储在内存中的细节,但这是一个实现细节. >属性仅在您使用反射时初始化.
原文链接:https://www.f2er.com/csharp/95471.html

猜你在找的C#相关文章