2008-10-27 6 views
2

Ceci est une suite à une question précédente que j'avais sur les interfaces. J'ai reçu une réponse que j'aime, mais je ne suis pas sûr de savoir comment l'implémenter dans VB.NET.Comment rendre une propriété d'interface facultative en lecture seule dans VB.NET?

question précédente:

Should this property be part of my object's interface?

public interface Foo{ 
    bool MyMinimallyReadOnlyPropertyThatCanAlsoBeReadWrite {get;} 
} 

Comment puis-je parvenir avec la syntaxe VB.NET? Pour autant que je sache, ma seule option est de marquer la propriété comme étant ReadOnly (je ne peux pas implémenter le setter) ou non (je dois implémenter le setter).

Répondre

2

Définissez simplement le getter dans une interface et créez une seconde interface qui possède à la fois le getter et le setter. Si votre classe concrète est mutable, faites-la implémenter la deuxième interface. Dans votre code qui traite de la classe, vérifiez qu'il s'agit d'une instance de la deuxième interface, cast si c'est le cas, puis appelez le setter.

+0

Cela ne fonctionne pas: puisque vous auriez à implémenter l'interface deux fois dans ce cas, en savoir plus: http: // stackoverflow .com/questions/453218/interface-inheritance/453265 # 453265 –

+0

Cela fonctionne, il vous suffit de baisser l'objet vers l'interface Réglable pour que cela fonctionne. – STW

1

En VB.NET je mettre en œuvre ainsi:

Public Interface ICanBeSecure 

    ReadOnly Property IsSecureConnection() As Boolean 
End Interface 

Public Interface IIsSecureable 
    Inherits ICanBeSecure 

    Shadows Property IsSecureConnection() As Boolean 
End Interface 
Questions connexes