Freund und geschützter Freund in VB.NET

click fraud protection

Zugriffsmodifikatoren (auch als Bereichsregeln bezeichnet) bestimmen, welcher Code auf ein Element zugreifen kann, dh welcher Code zum Lesen oder Schreiben berechtigt ist. 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:

  • Privat - innerhalb desselben Moduls, derselben Klasse oder derselben Struktur.
  • Freund - innerhalb derselben Versammlung.
  • Öffentlich - überall im selben Projekt, aus anderen Projekten, die auf das Projekt verweisen, und aus jeder aus dem Projekt erstellten Baugruppe. Mit anderen Worten, jeder Code, der ihn finden kann.

VB.NET hat auch eineinhalb neue hinzugefügt.

  • Geschützt
  • Geschützter Freund

Die "Hälfte" ist, weil Protected Friend eine Kombination aus der neuen Protected-Klasse und der alten Friend-Klasse ist.

Die Modifikatoren Protected und Protected Friend sind erforderlich, da VB.NET die letzte OOP-Anforderung implementiert, bei der VB fehlte: Erbe.

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 die Implementierung in einer Hierarchie gemeinsam nutzen. Mit anderen Worten, die Vererbung ermöglicht es einem Softwareobjekt, das alle Methoden und Eigenschaften eines anderen übernimmt.

instagram viewer

Dies wird oft als "is-a" -Beziehung bezeichnet.

  • Ein LKW ist ein Fahrzeug.
  • Eine quadratische "ist-eine" Form.
  • Ein Hund ist ein Säugetier.

Die Idee ist, dass allgemeinere und weit verbreitete Methoden und Eigenschaften als "übergeordnete" Klassen definiert werden und diese in "untergeordneten" Klassen (häufig als Unterklassen bezeichnet) spezifischer 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 Element tun müssen. Allen "Mitarbeitern" muss eine "Mitarbeiternummer" zugewiesen sein. Spezifischerer Code kann Teil der untergeordneten Klassen sein. Nur Mitarbeitern, die im Büro arbeiten, muss ein Mitarbeiter-Türkartenschlüssel zugewiesen werden.

Diese neue Vererbungsfähigkeit 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 innerhalb derselben Klasse oder von einer von dieser Klasse abgeleiteten Klasse zugegriffen werden. Sie möchten nicht, dass Mitarbeiter-Türkartenschlüssel nur Mitarbeitern zugewiesen werden.

Wie bereits erwähnt, ist Protected Friend eine Kombination aus dem Zugriff von Friend und Protected. Auf Codeelemente kann entweder von abgeleiteten Klassen oder von derselben Assembly oder von beiden aus 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 ist, dass Friend in einer Quelldatei verwendet werden kann. Namespace, Schnittstelle, Modul, Klasse oder Struktur. Geschützter Freund kann jedoch nur in einer Klasse verwendet werden. Protected Friend ist das, was Sie zum Erstellen Ihrer eigenen Objektbibliotheken benötigen. Friend ist nur für schwierige Codesituationen geeignet, in denen ein montageweiter Zugriff wirklich erforderlich ist.

instagram story viewer