C# virtuell

C# virtuell
Eine virtuelle Funktion in C# kann in Unterklassen überschrieben werden. Eine virtuelle Funktion in C# hat sowohl eine übergeordnete als auch eine Kinderklassenimplementierung. Wenn die Kernfunktionalität einer Methode fast gleich ist, erfordert die Unterklasse jedoch zusätzliche Fähigkeiten und wird verwendet. Die virtuelle Phrase wird verwendet. Wenn eine Funktion als virtuelle Funktion in einer Superklasse angegeben wird, kann die Unterklasse auswählen, ob sie sie überschreiben oder nicht. Die übergeordnete Methodik ermöglicht es einer Funktion, viele Formen zu haben. Infolgedessen ist es eine gute Darstellung des Polymorphismus. Beginnen wir mit der Verwendung einiger C# -Beispiele, um die Arbeit des "virtuellen" Schlüsselworts zum Erstellen und Verwenden der virtuellen Funktionen im Code zu erstellen und zu verwenden. Wir müssen eine C# -Datei erstellen, in der wir den Code für virtuelle Funktionen mit der Abfrage „Touch“ wie unten hinzufügen können.

Beispiel # 01

Beginnen wir mit dem grundlegendsten Beispiel für die Verwendung der virtuellen Methode in C#. Wir werden die Systembibliothek in unserem Code in der ersten Zeile verwenden, indem wir das Schlüsselwort „Verwenden“ wie angezeigt verwenden. Danach haben wir eine öffentliche Basisklasse mit dem Namen "Eltern" mit der Schlüsselwort "Klasse" erstellt. Diese Basisklasse enthält eine einzelne Funktion mit dem Namen "Show" von Void Return -Typ und öffentlichem Zugriffsmodifikator, i.e., Virtuelle Funktion.

Diese virtuelle Funktion enthält eine einfache Anweisung writeline () Funktionen der Konsolenklasse, um den einfachen Textsatz für die Ausführung auf unserem Bildschirm auszudrucken.e., "Virtuelle Methode in der Elternklasse". Danach wurde eine weitere öffentliche Klasse namens "Child" erstellt. Wie gezeigt, wurde diese Klasse aus der Klasse „Eltern“ abgeleitet. Die Methode "Show" wurde darin implementiert, die mit dem Schlüsselwort "Override" von der Basisklasse "übergeordnet" überschrieben wurde, gefolgt vom Rückgabetyp "void" und mit dem "öffentlichen" Zugriffsmodifikator gestartet.

Da diese virtuelle Funktion von der Basisklasse überschrieben wurde, muss sie eine zusätzliche Implementierung enthalten. Daher haben wir die Anweisung der WriteLine () der Konsolenklasse hier verwendet, um eine neue Textzeichenfolge in der Shell anzuzeigen, in der „übergeordnete virtuelle Methode in der untergeordneten Klasse überschrieben“ angegeben ist. Sowohl die übergeordneten als auch die Kinderklassenfunktionen sind gleichermaßen, aber eine andere Implementierung. All diese Implementierung funktioniert nach der Verwendung der Main () -Methode im Code. Wir haben also eine neue unabhängige Klasse mit dem Namen "New" mit dem Schlüsselwort "Klasse" erstellt. Diese Klasse enthält eine statische Main () -Methode mit einem Hohlraum -Rückgabetyp. Die Ausführung begann mit dem Erstellen eines übergeordneten Klassenobjekts „O1“ mit dem Schlüsselwort „Neu“, gefolgt vom Klassennamen. Wir haben dieses neue Objekt O1 verwendet, um die virtuelle Funktion "Show" von der übergeordneten Klasse aufzurufen. Danach haben wir ein weiteres Objekt O2 für die untergeordnete Klasse mit dem Schlüsselwort „Neu“ erstellt, beginnend mit dem Namen der Basisklasse und dem enden mit dem Namen der untergeordneten Klasse. Dies zeigt, dass das tatsächliche Erbe im C# Code stattgefunden hat. Das Objekt „O2“ der untergeordneten Klasse wurde verwendet, um die überragende virtuelle Funktion "Show" der untergeordneten Klasse zu nennen. Der Funktionsaufruf darf bei der Ausführung der Main () -Methode nicht durcheinander gebracht werden. Außerdem sollten wir die Funktion "show () der übergeordneten Klasse zuerst und dann die Funktion" show () der Unterrichtsklassenfunktion erhalten. Die Klasse Neue ist hier zu Ende gegangen, und unser Code ist jetzt abgeschlossen.

Nachdem wir diesen Code im Texteditor gespeichert hatten, kehrten wir zum Terminal zurück, da unser Code mit dem C# -Mc -Compiler „MCS“ zusammengestellt werden muss. Nach der erfolgreichen Zusammenstellung haben wir die Ausführung seiner "Exe" -Datei ausprobiert, die gerade im Home -Ordner mit der „Mono“ Laufzeit von C# erstellt wurde. Es wurde der Code ausgeführt und die Zeichenfolge der virtuellen Methode aus der übergeordneten Klasse zuerst und dann den String -Text der überragenden Show () der untergeordneten Methode der untergeordneten Klasse angezeigt.

Beispiel # 02

Machen wir unseren Code ein wenig fortgeschritten und anders als das obige Beispiel. Wir haben es mit der Nutzung der Systembibliothek in der ersten Codezeile begonnen. Danach haben wir einen globalen Klassennamen -Test mit drei weiteren Klassen und einer Main () -Funktion verwendet. Die erste Klasse, "Rechteck", ist eine übergeordnete Klasse der beiden anderen Klassen. Wir haben mit 10, 4 bzw. 3 mit 10, 4 bzw. 3 3 doppelte Variablen "H", "W" und "R" deklariert. Eine konstante Variable mit Doppelart wurde mit einem eingebauten PI-Wert der Mathematik deklariert. Eine virtuelle Methode „aa ()“ des Doppel -Rückgabetyps wurde hier definiert, die das Multiplikationsergebnis von „H“ und „W“ an die Main () -Funktion der Testklasse zurückgegeben hat, i.e., Die Fläche eines Rechtecks ​​ist die Höhe mit Breite,. Die Klasse „Quadrat“ wurde aus der Klasse „Rechteck“ abgeleitet. Diese Klasse überschreibt die virtuelle Funktion „Bereich“ von ihrer Basisklasse und gibt das Multiplikationsergebnis von „H“ und „H“ zurück, I.e., Die Fläche eines Quadrats ist eine Seite mit der zweiten Seite oder Höhe in die Höhe multipliziert.

Dann haben wir eine abgeleitete Klasse „Kreis“, die die virtuelle Funktion „Bereich“ aus dem Rechteck der Basisklasse überschreibt. Diese Funktion gibt das Multiplikationsergebnis von „P“ und „r*r“ zurück, i.e., Die Fläche eines Kreises ist „PI“ multipliziert mit dem Quadrat eines Radius. Drei Klassen wurden im Code vollständig definiert und implementiert. Jetzt ist es die Wende der Main () -Funktion von C#, um seine Ausführung zu starten und die Klassen schrittweise auszuführen. In der Main () -Methode der Testklasse haben wir in der ersten Zeile ein Objekt „O1“ der übergeordneten Klasse -Rechteck unter Verwendung des Namens einer Klasse mit dem Schlüsselwort „Neu“ erstellt.

Mit der Rechteckklasse haben wir Objekte O2 und O3 für abgeleitete Klassen quadratisch bzw. Kreis erstellt. Hier wurden drei Schreibeline () Aussagen aus der Konsolenklasse verwendet, um den Bereich von Rechteck, Quadrat und Kreis anzuzeigen. Zur Berechnung der Fläche für drei Formen haben wir die jeweiligen Objekte jeder Formklasse verwendet. Diese Objekte haben ihre jeweiligen virtuellen Funktionen bezeichnet, die in der Rechteckklasse definiert und in den abgeleiteten Klassen überschrieben wurden, ich.e., Quadrat und Kreis.

Es ist an der Zeit, diesen neu erstellten C# -Code in der Shell mit dem Befehl „MCS“ zu kompilieren. Verwenden Sie anschließend die Mono -Laufzeitanweisung, um die "EXE" -Datei auszuführen, die als Ergebnis der Zusammenstellung generiert wurde. Bei der Ausführung dieser „Exe“ -Datei für den Code haben wir den Bereich Rechteck, Quadrat und Kreis auf unserem Bildschirm angezeigt, da wir die virtuelle Funktion in einer Klasse verwendet haben und sie in den abgeleiteten Klassen überschrieben haben.

Abschluss

Wir haben beschrieben, wie eine einfache virtuelle C# -Funktion im C# Code verwendet und in ihren Unterklassen überschrieben werden kann. Wir haben mit Hilfe einiger Beispiele gezeigt, dass es in diesem Artikel funktioniert. Das erste Beispiel zeigt die Verwendung der virtuellen Funktion innerhalb des einzelnen Erbschaftsprogramms, während das zweite Beispiel mit Hilfe mehrerer Erbschaften zeigt. So haben wir gezeigt, wie eine einfache Methode verwendet werden kann, um mehrere Berechnungen mit der einzelnen Definition einer Funktion in C# durchzuführen.