Ich habe eine Reihe von Basisklassen in einem Namensraum und einige Sätze von abgeleiteten Klassen in anderen Namensräumen. Alles in einem Projekt. Etwas wie:Wie kann man die vb.net-Eigenschaft nur innerhalb eines bestimmten Namensraums sichtbar machen?
Namespace Base
Public Class BaseElement
Protected Friend Readonly Property SubElements() as BaseElements
End Class
End Namespace
...
Namespace Books
Public Class Book
Inherits Base.BaseElement
Public Readonly Property Pages() as Pages
return MyBase.SubElements
End Property
End Class
End Namespace
ich mehrere abgeleitete Klassen und wollen sie müssen haben einige leicht verständliche Eigenschaften sichtbar statt .SubElements.
OK, es kann getan werden, .SubElements als Protected in BaseElement-Klasse zu deklarieren. Aber in diesem Fall kann ich nicht auf diese Eigenschaft von anderen Klassen im Base-Namespace zugreifen, die nicht davon abgeleitet sind.
Ich habe versucht, Friend Keyword hinzuzufügen, aber es machte diese Eigenschaft sichtbar, wenn ich abgeleitete Klassen instanziieren.
Also ... irgendeine Möglichkeit, einige Eigenschaften zu verstecken, wenn sie abgeleitete Klassen verwenden, während sie in der Lage sind, Basisklassen zu verwenden?