c using statement c virtual method tutorial with examples
Dieses ausführliche Tutorial erklärt alles über C # mithilfe von Anweisungen und virtuellen Methoden. Sie lernen auch den Unterschied zwischen abstrakten und virtuellen Methoden kennen:
Der Verwendungsblock hilft hauptsächlich beim Verwalten von Ressourcen. Er ermöglicht dem System das Verwalten seiner Ressourcen, indem der Umfang des Objekts und sein Ressourcenbedarf angegeben werden.
Das .Net Framework bietet verschiedene Möglichkeiten für die Ressourcenverwaltung von Objekten mithilfe eines Garbage Collectors. Dies bedeutet, dass Sie keine Speicherobjekte explizit zuweisen und entfernen müssen. Der Reinigungsvorgang für nicht verwaltete Objekte wird mithilfe des Destruktors ausgeführt.
Um Programmierern dabei zu helfen, bietet die Anweisung C # using eine Bedingung für die Zerstörung des Objekts.
=> Lesen Sie hier den kostenlosen C # -Trainingsleitfaden .
Um eine automatische Zerstörung des Objekts zu erreichen, bietet C # eine Entsorgungsmethode, die aufgerufen werden kann, wenn das Objekt nicht mehr benötigt wird. Die using-Anweisung in C # definiert eine bedingte Grenze für die Existenz des Objekts. Sobald die Ausführungssequenz die Verwendungsgrenze verlässt, weiß das .Net-Framework, dass es Zeit ist, dieses Objekt zu zerstören.
Was du lernen wirst:
- C # Using-Anweisung
- Virtuelle C # -Methode
- Was ist eine virtuelle Methode?
- Virtuelle Methoden: Einige Punkte, an die Sie sich erinnern sollten
- Was ist die Verwendung von virtuellen Schlüsselwörtern in C #?
- Unterschied zwischen abstrakter Methode und virtueller Methode
- Unterschied zwischen virtuell und überschreiben in C #
- Ist es obligatorisch, die virtuelle Methode in C # zu überschreiben?
- Fazit
C # Using-Anweisung
Implementieren Sie die IDisposable-Schnittstelle für die Verwendung
Mit der Anweisung C # Using können die Programmierer mehrere Ressourcen in einer Anweisung implementieren. Alle im using-Codeblock definierten Objekte sollten die IDisposable-Schnittstelle implementieren. Auf diese Weise kann das Framework die Dispose-Methoden für die angegebenen Objekte in der Anweisung nach dem Beenden aufrufen.
Beispiel
Die Verwendung von Anweisungen kann mit einem Typ kombiniert werden, der IDisposable wie StreamWriter, StreamReader usw. implementieren kann.
Schauen wir uns ein einfaches Programm an:
Was sind die besten Anime-Websites
public class Program { public static void Main(string() args) { using (SysObj so = new SysObj()) { Console.WriteLine('Inside using statement'); } Console.WriteLine('Outside of the using statement block'); } } class SysObj : IDisposable { public void Dispose() { Console.WriteLine('Dispose method'); } }
Ausgabe
Die Ausgabe des obigen Programms:
Innen mit Anweisung
Entsorgungsmethode
Außerhalb des using-Anweisungsblocks
Erläuterung
Im obigen Beispiel wird beim Ausführen des Programms zuerst die Instanz 'SysObj' im Speicherheap zugewiesen. Dann beginnt der using-Block mit der Ausführung und druckt die Ausgabe, die wir in der Konsole definiert haben. Wenn der Using-Anweisungsblock beendet ist, wird die Ausführung sofort an die dispose-Methode übertragen.
Dann verlässt der Code den Anweisungsblock und druckt die externe Anweisung an die Konsole.
Virtuelle C # -Methode
Was ist eine virtuelle Methode?
Eine virtuelle Methode ist eine Klassenmethode, die dem Programmierer Funktionen zum Überschreiben einer Methode in der abgeleiteten Klasse mit derselben Signatur bietet. Virtuelle Methoden werden hauptsächlich verwendet, um Polymorphismus in der OOP-Umgebung durchzuführen.
Eine virtuelle Methode kann sowohl in abgeleiteten als auch in Basisklassen implementiert werden. Es wird hauptsächlich verwendet, wenn ein Benutzer mehr Funktionen in der abgeleiteten Klasse haben muss.
Eine virtuelle Methode wird zuerst in einer Basisklasse erstellt und dann in der abgeleiteten Klasse überschrieben. Eine virtuelle Methode kann in der Basisklasse mit dem Schlüsselwort 'virtual' erstellt werden, und dieselbe Methode kann in der abgeleiteten Klasse mit dem Schlüsselwort 'override' überschrieben werden.
Virtuelle Methoden: Einige Punkte, an die Sie sich erinnern sollten
- Die virtuelle Methode in der abgeleiteten Klasse hat das Schlüsselwort virtual und die Methode in der abgeleiteten Klasse sollte ein Schlüsselwort zum Überschreiben haben.
- Wenn eine Methode in der Basisklasse als virtuelle Methode deklariert ist, muss die abgeleitete Klasse diese Methode nicht immer überschreiben, d. H. Sie kann optional eine virtuelle Methode in der abgeleiteten Klasse überschreiben.
- Wenn eine Methode sowohl in der Basisklasse als auch in der abgeleiteten Klasse dieselbe Definition hat, muss die Methode nicht überschrieben werden. Überschreiben ist nur erforderlich, wenn beide eine unterschiedliche Definition haben.
- Die überschreibende Methode ermöglicht es uns, mehr als eine Form für dieselbe Methode zu verwenden, daher zeigt sie auch Polymorphismus.
- Alle Methoden sind standardmäßig nicht virtuell.
- Ein virtueller Modifikator kann nicht zusammen mit privaten, statischen oder abstrakten Modifikatoren verwendet werden.
Was ist die Verwendung von virtuellen Schlüsselwörtern in C #?
Das virtuelle Schlüsselwort in C # wird verwendet, um das Basisklassenmitglied in seiner abgeleiteten Klasse basierend auf der Anforderung zu überschreiben.
Verwendung des Team Foundation Servers
Ein virtuelles Schlüsselwort wird verwendet, um die virtuelle Methode in der Basisklasse anzugeben, und der Methode mit derselben Signatur, die in der abgeleiteten Klasse überschrieben werden muss, wird das Schlüsselwort override vorangestellt.
Unterschied zwischen abstrakter Methode und virtueller Methode
Virtuelle Methoden enthalten die Implementierung und ermöglichen es der abgeleiteten Klasse, diese zu überschreiben, während die abstrakte Methode keine Implementierung bietet und die Programmierer zwingt, Überschreibungsmethoden in die abgeleitete Klasse zu schreiben.
In einfachen Worten, die abstrakten Methoden enthalten keinen Code, während die virtuelle Methode eine eigene Implementierung hat.
Unterschied zwischen virtuell und überschreiben in C #
Auf das virtuelle Schlüsselwort folgt normalerweise die Signatur der Methode, Eigenschaft usw. und ermöglicht das Überschreiben in der abgeleiteten Klasse. Das Schlüsselwort override wird in der abgeleiteten Klasse mit derselben Methoden- / Eigenschaftssignatur wie in der Basisklasse verwendet, um eine Überschreibung in der abgeleiteten Klasse zu erreichen.
Ist es obligatorisch, die virtuelle Methode in C # zu überschreiben?
Der Compiler wird Programmierer niemals dazu zwingen, eine virtuelle Methode zu überschreiben. Die abgeleitete Klasse muss die virtuelle Methode nicht immer überschreiben.
Beispiel
Schauen wir uns ein Beispiel an, um die virtuellen Methoden besser zu verstehen.
In diesem Beispiel verwenden wir zwei verschiedene Methoden in der Basisklasse, die erste ist eine nicht virtuelle Methode und die andere ist eine virtuelle Methode mit dem Schlüsselwort virtual. Beide Methoden werden in der abgeleiteten Klasse überschrieben.
Lassen Sie uns einen Blick darauf werfen:
Programm
using System; public class Program { public static void Main(string() args) { calculate calc = new calculate (); numbers nmbr = calc; calc.addition(); nmbr.addition(); calc.subtraction(); nmbr.subtraction(); } } public class numbers { public void addition(){ Console.WriteLine('This is addition method'); } public virtual void subtraction(){ Console.WriteLine('This is subtraction method'); } } public class calculate : numbers { public void addition(){ Console.WriteLine('This is addition method in the derived class'); } public override void subtraction(){ Console.WriteLine('This is subtraction method override in derived class'); } }
Ausgabe
Die Ausgabe des obigen Programms ist:
beste kostenlose mp3 musik download app für android
Dies ist eine Additionsmethode in der abgeleiteten Klasse
Dies ist eine Additionsmethode
Dies ist eine Überschreibung der Subtraktionsmethode in einer abgeleiteten Klasse
Dies ist eine Überschreibung der Subtraktionsmethode in einer abgeleiteten Klasse
Erläuterung
Im obigen Beispiel haben wir zwei Klassen, d. H. Zahl und Berechnen. Die Basisklassenzahl hat zwei Methoden, d. H. Addition und Subtraktion, wobei Addition eine nicht virtuelle Methode und Subtraktion eine virtuelle Methode ist. Wenn wir dieses Programm ausführen, wird daher die virtuelle Methode 'Addition' der Basisklasse in der abgeleiteten Klasse Calculate überschrieben.
In einer anderen Klasse „Programm“ erstellen wir einen Einstiegspunkt, um eine Instanz der abgeleiteten Klasse Calculate zu erstellen, und weisen dann dem Instanzobjekt der Basisklasse dieselbe Instanz zu.
Wenn wir die virtuellen und nicht virtuellen Methoden mithilfe der Klasseninstanzen aufrufen, sehen wir, dass die virtuelle Methode durch Verwendung beider Instanzen überschrieben wurde, während die nicht virtuelle Methode nur beim Aufrufen der abgeleiteten Klasse überschrieben wurde.
Fazit
Die using-Anweisung in C # wird hauptsächlich für die Ressourcenverwaltung verwendet. Die using-Anweisung definiert eine bedingte Grenze für die Existenz eines Objekts.
Sobald die Ausführung den Anweisungsblock verlässt, weist sie das Framework an, alle Objekte zu zerstören, die innerhalb des Anweisungsblocks erstellt wurden. In der Anweisung definierter Code sollte auch eine IDisposable-Schnittstelle implementieren, damit das .Net-Framework die dispose-Methode für die definierten Objekte aufrufen kann.
Mit einer virtuellen Methode kann der Benutzer eine Methode in der abgeleiteten Klasse überschreiben, die dieselbe Signatur wie die Methode in der Basisklasse hat. Die virtuelle Methode kann verwendet werden, um Polymorphismus in objektorientierten Programmiersprachen zu erreichen.
Eine virtuelle Methode wird hauptsächlich verwendet, wenn in der abgeleiteten Klasse zusätzliche Funktionen erforderlich sind. Virtuelle Methoden können nicht privat statisch oder abstrakt sein. Es wird definiert, indem ein virtuelles Schlüsselwort in der Basisklasse verwendet und das Schlüsselwort in der abgeleiteten Klasse überschrieben wird.
=> Sehen Sie sich hier die ausführlichen C # -Trainings-Tutorials an
Literatur-Empfehlungen
- Python DateTime Tutorial mit Beispielen
- Selenium Find Element By Text Tutorial mit Beispielen
- MongoDB Sort () -Methode mit Beispielen
- MongoDB-Abfragedokument mit der Find () -Methode (Beispiele)
- Verwendung des Cursors in MongoDB mit Beispielen
- C # -Klassen und -Objekte: Ein ausführliches Tutorial mit Beispielen
- Unix Shell Scripting Tutorial mit Beispielen
- Tutorial zur Behandlung von C # -Ausnahmen mit Codebeispielen