1 .. Y a-t-il un surcoût lié à l'utilisation des attributs? Pensez à une classe comme:Gestion des performances liées à l'utilisation des attributs dans .NET
public class MyClass
{
int Count {get;set;}
}
où il a 10 attibutes (attributs étant des classes, où les classes d'attributs eux-mêmes sont beaucoup plus grandes que MyClass lui-même comme:
public class FirstAttribute : Attribute
{
int A,B,C,D,E,F,G,H,I,J ... {get;set;}
}
2 .. Would 10 de ces attributs est un surcoût de mémoire à chaque fois MyClass
est instancié? (FirstAttribute
étant 10 fois la taille de MyClass
qui sera décoré avec 10 d'entre eux, rendant ainsi l'objet lui-même si petit par rapport à la taille totale des attributs qui y sont décorés. Est-ce une préoccupation?
3 .. Ce scénario serait-il différent pour les structures (les structures étant des types de valeur et les attributs étant des types de référence)?
4 .. Où les attibuts sont-ils stockés en mémoire par rapport à l'objet auquel ils sont attachés? Comment sont-ils accrochés ensemble?
5 .. Les attributs sont-ils initialisés dès que MyClass
est initialisé ou lorsque vous utilisez la réflexion pour les récupérer?
Merci Jon, vous êtes si vite. Je comprends maintenant. –
Les attributs ne sont que des objets de types références, ils sont donc instanciés et stockés en mémoire de la même manière que n'importe quel autre objet. –
... sauf si vous utilisez quelque chose comme http://www.postsharp.org/ – TrueWill