Description :
Il y a deux classes, A et B, I A hérite de la classe B, et B est la classe mère
J’ai défini les propriétés TestAttribute en classe A et classe B respectivement...
Ensuite, prenons les caractéristiques de l’objet, et le code est le suivant :
J’ai constaté que le nombre de résultats est de 1, et que l’attribut est l’attribut défini par A, pas l’attribut défini par B, sans parler de fusionné, pourquoi cela ???
[Help(« BaseClass »)] publicclass Base{} publicclass Derive : Base{} Il y a quatre combinaisons possibles ici :
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false] [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = faux ] [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true] [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true] Le premier cas :
Si nous interrogeons la classe Derive (nous verrons plus tard comment interroger les propriétés d’une classe à l’exécution), nous constaterons que la fonctionnalité Aide n’existe pas car la propriété héritée est réglée sur fausse.
Deuxième affaire :
Comme dans le premier cas, car hérité est aussi fixée sur faux.
La troisième situation :
Pour expliquer les troisième et quatrième cas, ajoutons d’abord un peu de code à la classe dérivée :
[Aide(« BaseClass »)] publicclass Base{}[Help(« DeriveClass »)] publicclass Derive : Base{} Interrogons maintenant la fonction Aide, nous ne pouvons obtenir que les propriétés de la classe dérivée, car inherited est réglé sur true, mais AllowMultiple est fixé sur false. Par conséquent, la caractéristique Aide de la classe de base est supplantée par la caractéristique Aide de la classe déduitive.
La quatrième situation :
Ici, nous verrons que la classe dérivée possède à la fois la caractéristique Aide de la classe de base et sa propre caractéristique Aide, car AllowMultiple est réglé sur true.
|