Il existe le mot-clé this pour accéder à l'instance d'une classe.
Il existe le mot-clé base pour accéder à la classe mère d'une classe.
Mais existe-t-il un mot-clé (ou une astuce) pour accéder au type de la classe elle-même, de façon "statique" ?
Je m'explique : j'ai une classe mère Item à partir de laquelle dérivent toute une palanquée de classes. Exemple : Devise : Item.
Chacune de ces classes a des attributs personnalisés :
Je souhaite rédiger dans ma classe mère Item des propriétés statiques permettant d'accéder à ces attributs, mais correspondant au type de la classe dérivant (exemple : accéder aux attributs de Devise à partir de propriétés statiques définies dans Item).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] class ItemAttribute : Attribute { public string Flag; public int FieldsCount; public int FlagRepeat; public int ContentRepeat; }
Actuellement, j'utilise l'instance des classes, mais c'est un peu nul de ne pas pouvoir y accéder de façon statique, puisque ce sont des attributs. Exemple :
Ceci dit, il y a peut-être une mauvaise conception à l'origine. Je suis donc ouvert à toute proposition. Le principe d'origine étant de ne pas avoir à définir des propriétés pour chaque classe qui dérivera de Item.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public string Flag { get { return ((ItemAttribute[])this.GetType().GetCustomAttributes(typeof(ItemAttribute), true))[0].Flag; } }
Merci !
Partager