So verwenden Sie die virtuelle Methode in C#

So verwenden Sie die virtuelle Methode in C#
Virtuelle Methoden sind ein wichtiges Merkmal objektorientierter Programmiersprachen wie C#. Sie ermöglichen es Klassen, Methoden zu definieren, die durch abgeleitete Klassen überschrieben werden können, und bieten den Klassen eine Möglichkeit, das Verhalten ihrer übergeordneten Klassen anzupassen.

Was ist virtuelle Methode in C#

Virtuelle Methoden in C# sind Methoden, die in einer Basisklasse deklariert werden und durch abgeleitete Klassen überschrieben werden können. Mit anderen Worten, eine virtuelle Methode ist eine Methode, die in einer Unterklasse neu definiert werden kann. Hier ist die Syntax dafür:

öffentliche virtuelle Leere ()

// Methode Implementierung

Das virtuelle Schlüsselwort zeigt an, dass diese Methode von einer abgeleiteten Klasse überschrieben werden kann und wenn eine abgeleitete Klasse eine virtuelle Methode überschreibt, bietet sie eine eigene Implementierung der Methode.

Um eine virtuelle Methode in einer abgeleiteten Klasse zu überschreiben, fügen Sie das Schlüsselwort Override in die Methodensignatur ein und unten ist die Syntax dafür:

Öffentliche Außerirdische Leere ()

// Methode Implementierung

Das Schlüsselwort Override gibt an, dass diese Methode eine virtuelle Methode in der übergeordneten Klasse überschreibt. Hier ist ein Beispiel -Code -Snippet, das die Verwendung virtueller Methoden in C#demonstriert:

mit System verwenden;
// Definieren Sie eine Basisklasse mit dem Namen Berechnung
Klassenberechnung

// Definieren Sie eine virtuelle Methode hinzufügen, die zwei Ganzzahlen erfordert und ein ganzzahliges Ergebnis zurückgibt
Public Virtual int add (int x, int y)

Rückgabe x + y; // Geben Sie die Summe der beiden Eingangszahlen zurück


// Definieren Sie eine abgeleitete Klasse mit dem Namen CustomCalculation, die von der Berechnung erbt
Klasse CustomCalculation: Berechnung

// Überschreiben Sie die Methode der Basisklasse hinzufügen
Öffentliche Überschreibung int add (int x, int y)

if (x> 10 || y> 10) // Wenn einer der Eingangszahlen größer als 10 ist

Rückkehr x - y; // y von x subtrahieren und das Ergebnis zurückgeben

sonst // Wenn keiner der Eingangszahlen größer als 10 ist

Rückbasis.Add (x, y); // Rufen Sie die Methode der Basisklasse hinauf, um die Summe der beiden Eingangszahlen zurückzugeben



Klassenprogramm

statische void main (String [] args)

// Erstellen Sie eine Instanz der Basisklasse mit dem Namen Berechnung
Berechnung calc = neue Berechnung ();
// Erstellen Sie eine Instanz der abgeleiteten Klasse mit dem Namen CustomCalculation
CustomCalculationCustomcalc = new CustomCalculation ();
// Rufen Sie die virtuelle Methode hinzufügen auf dem Basisberechnung Objekt auf
int result1 = calc.Add (5, 7);
Konsole.WriteLine ($ "result1: result1"); // Ausgabe: Ergebnis1: 12
// rufen Sie die überschriebene Methode hinzufügen im CustomCalculationsobjekt auf
int result2 = CustomCalc.Add (12, 7);
Konsole.WriteLine ($ "result2: result2"); // Ausgabe: Ergebnis2: 5

In diesem Beispiel haben wir eine Basisklasse, die als Berechnung mit einer virtuellen Methode namens Add bezeichnet wird, die einfach zwei Ganzzahlen zusammenfügt. Wir haben auch eine abgeleitete Klasse namens CustomCalculation, die die Methode hinzufügen, jedoch nur, wenn die Summe der beiden Zahlen größer als 10 ist.

In der überschriebenen Methode addieren wir, ob x oder y größer als 10 ist. Wenn diese Bedingung wahr ist, geben wir die Differenz zwischen x und y zurück. Wenn die Bedingung falsch ist, nennen wir die Basisimplementierung der Methode hinzufügen mithilfe des Basis -Schlüsselworts.

In der Hauptmethode erstellen wir ein Berechnungsobjekt und ein CustomCalculationsobjekt. Wir rufen zunächst die virtuelle Methode hinzufügen auf dem Basisberechnung Objekt auf und übergeben 5 und 7 als Argumente. Dies sollte zu einer Summe von 12 führen, und wir rufen dann die überschriebene Methode für das CustomCalculationsobjekt auf, die in 12 und 7 als Argumente gelten. Dies sollte zu einer Differenz von 5 führen, da die Summe der beiden Zahlen größer als 10 ist.

Wie Sie sehen können, wird die überschriebene Methode in der CustomCalculationsklasse nur dann aufgerufen, wenn die Bedingung falsch ist. Wenn die Bedingung wahr ist, liefert die überschriebene Methode eine andere Implementierung der Add -Methode, die die zweite Zahl vom ersten darunter subtrahiert. Nachfolgend ist die Ausgabe des Codes:

Abschluss

Die virtuelle Methode in C# bietet den Klassen eine Möglichkeit, Methoden zu definieren, die durch abgeleitete Klassen angepasst werden können. Indem Sie eine Methode als virtuell markieren, erlauben Sie abgeleitete Klassen, ihre eigene Implementierung der Methode bereitzustellen, und sein ist ein leistungsstarkes Merkmal der objektorientierten Programmierung, die eine größere Flexibilität und Wiederverwendbarkeit im Code ermöglicht.