none
Conceps objet : masquer une propriété sur une classe héritée RRS feed

  • Question

  • Environnement : VB.NET/VS2005

    Bonjour,

    J'ai fait une classe de base disposant de deux propriétés.

    Une seconde classe hérite de cette classe de base. Je souhaite à ce niveau masquer une des deux propritétés de la classe de base. Ainsi, les propriétés de ma classe de base seraient Base.Prop1, Base.Prop2; celle de ma classe hérité seraient Cls2.Prop1. Est-ce possible ?

    Pour être plus précis, mon problème se situe sur des contrôles utilisateurs :

    J'ai fait un premier contrôle utilisateur disposant d'un ensemble de propriété.

    Je souhaite faire un second contrôle utilisateur héritant du premier, mais restreindre les propriétés de celui-ci. Ainsi, le dévelopeur utilisant mon second contôle n'aura pas accès à la dite propriété.

    D'avance, merci de vos réponses.

     

    mardi 20 mars 2007 17:19

Toutes les réponses

  • Voici un composant héritant d'un premier composant. J'utilise les attributs pour définir les options en mode design et en code pour une propriété dérivée. Tu peux aussi y indiquer la description, la valeur par défaut, etc.
     

    Public Class Component2

        Inherits Component1

     

        <System.ComponentModel.Description("Demonstrates DisplayNameAttribute."), _

            System.ComponentModel.Browsable(False), _ System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never), _

            System.ComponentModel.ReadOnly(True)> _

            Public Overrides Property NewProperty() As Integer

            Get

                Return MyBase.NewProperty

            End Get

            Set(ByVal value As Integer)

                MyBase.NewProperty = value

            End Set

        End Property

    End Class

    Il se peut qu'il est d'autre techniques plus convivial, mais puisque je suis plus un habitué du C#, c'est le mieux que je peux faire pour t'aider. Mais si tu développe des composantes qui vont être redistribué, l'utilisation des attributs permet de faire un code super propre et compréhensible.
    mardi 20 mars 2007 18:05
    Modérateur
  • C'est une première solution, merci.

    Toutefois, elle est imparfaite. En effet, la propriété reste acessible par le code. Or dans mon cas, je souhaite que la propriété ne soit pas acessible, quelque soit le contexte.

     

    mercredi 21 mars 2007 11:48
  • Effectivement, je n'ai pas répondu à ta question, désolé. Donc en faisant un peu plus de recherches, je me suis rendu compte que je ne trouvais pas plus de solution. Je me demande vraiment comment faire maintenant, surtout que dans mon projet actuel je vais avoir surement à faire cela...

     

    mercredi 21 mars 2007 13:03
    Modérateur
  • OK, je posterais si je trouve la solution.

     

    mercredi 21 mars 2007 17:44