1 ... ¿Hay algún gasto de rendimiento causado por el uso de atributos? Piense por una clase como:Recarga de rendimiento al usar atributos en .NET
public class MyClass
{
int Count {get;set;}
}
donde tiene 10 attibutes (atributos que son clases, donde las clases de atributos mismos son mucho más grande que la propia MyClass como:
public class FirstAttribute : Attribute
{
int A,B,C,D,E,F,G,H,I,J ... {get;set;}
}
2 .. Would 10 de estos Los atributos son una sobrecarga de memoria cada vez que se crea una instancia de MyClass
(FirstAttribute
) que es 10 veces el tamaño de MyClass
que se decorará con 10 de estos, haciendo que el objeto real sea tan pequeño en comparación con el tamaño total de los atributos que están decorados.) ¿Es esto una preocupación?
3 ... ¿Este escenario sería diferente para las estructuras (las estructuras son tipos de valores y los atributos son tipos de referencia)?
4 .. ¿Dónde se almacenan los atributos en la memoria en relación con el objeto al que están adjuntos? ¿Cómo están enganchados?
5 .. ¿Los atributos se inicializan tan pronto como se inicializa MyClass
o cuando se usa la reflexión para recuperarlos?
Gracias Jon, usted es tan rápido. Ahora lo entiendo. –
Los atributos son solo objetos de tipos de referencia, por lo que se crean instancias y se almacenan en la memoria de la misma manera que cualquier otro objeto. –
... a menos que esté usando algo como http://www.postsharp.org/ – TrueWill