Zugriffsmodifikatoren (auch Bereichsregeln genannt) legen fest, welcher Code auf ein Element zugreifen kann, dh welcher Code die Berechtigung zum Lesen oder Schreiben hat. In früheren Versionen von Visual Basic gab es drei Arten von Klassen. Diese wurden auf .NET übertragen. In jedem von diesen erlaubt .NET nur den Zugriff auf Code:
VB.NET hat auch eineinhalb neue hinzugefügt.
Die "Hälfte" liegt daran, dass Protected Friend eine Kombination aus der neuen Protected-Klasse und der alten Friend-Klasse ist.
Die Modifizierer Protected und Protected Friend sind erforderlich, da VB.NET die letzte OOP-Anforderung implementiert, die für VB fehlte: Inheritance.
Vor VB.NET haben überhebliche und verächtliche C ++ - und Java-Programmierer VB herabgesetzt, weil es ihrer Meinung nach "nicht vollständig objektorientiert" war. Warum? In früheren Versionen fehlte die Vererbung. Durch Vererbung können Objekte ihre Schnittstellen und / oder Implementierung in einer Hierarchie gemeinsam nutzen. Mit anderen Worten, die Vererbung ermöglicht es einem Softwareobjekt, alle Methoden und Eigenschaften eines anderen zu übernehmen.
Dies wird oft als "Ist-Eine" -Beziehung bezeichnet.
Die Idee ist, dass allgemeinere und weit verbreitete Methoden und Eigenschaften als "Eltern" -Klassen definiert werden und diese in "Kind" -Klassen (oft als Unterklassen bezeichnet) genauer spezifiziert werden. "Säugetier" ist eine allgemeinere Beschreibung als "Hund". Wale sind Säugetiere.
Der große Vorteil ist, dass Sie Ihren Code so organisieren können, dass Sie nur Code schreiben müssen, der etwas tut, was viele Objekte einmal im übergeordneten Objekt tun müssen. Allen "Mitarbeitern" muss eine "Mitarbeiternummer" zugeordnet sein. Spezifischerer Code kann Teil der untergeordneten Klassen sein. Nur Mitarbeitern, die im allgemeinen Büro arbeiten, muss ein Mitarbeitertürkartenschlüssel zugewiesen werden.
Diese neue Vererbungsmöglichkeit erfordert jedoch neue Regeln. Wenn eine neue Klasse auf einer alten basiert, ist Protected ein Zugriffsmodifikator, der diese Beziehung widerspiegelt. Auf geschützten Code kann nur von derselben Klasse oder von einer von dieser Klasse abgeleiteten Klasse aus zugegriffen werden. Sie möchten nicht, dass Türkartenschlüssel von Mitarbeitern an andere Personen als Mitarbeiter vergeben werden.
Wie bereits erwähnt, ist "Geschützter Freund" eine Kombination aus dem Zugriff von "Freund" und "Geschützt". Auf Codeelemente kann entweder von abgeleiteten Klassen oder von derselben Assembly aus oder von beiden zugegriffen werden. Protected Friend kann zum Erstellen von Klassenbibliotheken verwendet werden, da sich Code, der auf Ihren Code zugreift, nur in derselben Assembly befinden muss.
Aber Friend hat auch diesen Zugriff. Warum sollten Sie Protected Friend verwenden? Der Grund dafür ist, dass Friend in einer Quelldatei, einem Namespace, einer Schnittstelle, einem Modul, einer Klasse oder einer Struktur verwendet werden kann. Geschützter Freund kann jedoch nur in einer Klasse verwendet werden. Mit Protected Friend können Sie Ihre eigenen Objektbibliotheken erstellen. Friend ist nur für schwierige Code-Situationen gedacht, in denen ein Zugriff auf die gesamte Baugruppe wirklich erforderlich ist.