Heim > Artikel > Backend-Entwicklung > SUNWEN-Tutorial – C# Advanced (6)
Worüber ich jetzt sprechen möchte, ist die Versionsverarbeitung in C#. Tatsächlich ist dies ein Problem, das jede Software berücksichtigen muss (außer dem, was ich geschrieben habe), daher ist die Versionsverarbeitung sehr wichtig . Java bewältigt dieses Problem sehr gut, und ich persönlich denke, dass C# auf der Verarbeitungsmethode von JAVA basiert, sodass es gute Arbeit leistet.
Wenn Sie in C# beim Deklarieren einer Methode dieses Schlüsselwort verwenden, dann in In der abgeleiteten Klasse können Sie das Schlüsselwort „override“ oder „new“ verwenden, um sie zu verwerfen oder zu ignorieren. Wenn Sie das Schlüsselwort „virtual“ in der übergeordneten Klasse, aber nicht in der abgeleiteten Klasse verwenden, können Sie die Schlüsselwörter „override“ oder „new“ verwenden, um direkt auf eine Methode zu verweisen Wenn Sie denselben Namen verwenden, meldet der Compiler einen Fehler und führt ihn im neuen Modus aus, der Methoden in abgeleiteten Klassen ignoriert. Das folgende Beispiel kann Ihnen beim Verständnis helfen:
000: // Versioningversioning.cs
001: öffentliche Klasse MyBase
002: {
003: öffentliche virtuelle Zeichenfolge Meth1()
004: {
005: return „MyBase-Meth1“;
006: }
007: öffentliche virtuelle Zeichenfolge Meth2()
008: {
009: return „MyBase-Meth2“;
010: }
011: öffentliche virtuelle Zeichenfolge Meth3()
012: {
013: return „MyBase-Meth3“;
014: }
015: }
016:
017: Klasse MyDerived : MyBase
018: {
019: öffentliche Überschreibung string Meth1()
020: {
021: return „MyDerived-Meth1“;
022: }
023: öffentlicher neuer String Meth2()
024: {
025: return „MyDerived-Meth2“;
026: }
027: public string Meth3() // Das System wird hier eine Warnung anzeigen und die Methode Meth3() wird ausgeblendet
028:
029:
030: {
031: return „MyDerived-Meth3“;
032: }
033:
034: public static void Main()
035: {
036: MyDerived mD = new MyDerived();
037: MyBase mB = (MyBase) mD;
038:
039: System.Console.WriteLine(mB.Meth1());
040: System.Console.WriteLine(mB.Meth2());
041: System.Console.WriteLine(mB.Meth3());
042: }
043: }
Ausgabe:
MyDerived-Meth1
MyBase-Meth2
MyBase-Meth3
Es ist deutlich zu erkennen, dass die Ausgabe der letzten beiden neuen Schlüsselwörter die Ausgabe der Methode in ist Es ist also ersichtlich, dass die Funktion des neuen Schlüsselworts darin besteht, dass die vorherige Methode anstelle meiner aktuellen Methode verwendet wird Die Funktion besteht darin, dass, wenn es eine solche Methode in der übergeordneten Klasse gibt, der Methodeninhalt verwendet wird, den ich gerade schreibe, und die vorherige Methode weggelassen wird. Es scheint jedoch nicht gut, hier zu verwenden. Das ist irreführend (Oh nein, das ist der Idiot). Ich werde mich wieder treffen!&*%$#@).
Wenn Sie Zeile 037 entfernen und alle mB in 039-041 in mD ändern, ändert sich die Ausgabe zu:
MyDerived- Meth1
MyDerived-Meth2
MyDerived-Meth3
Was bedeutet das? Das bedeutet, dass das Objekt der abgeleiteten Klasse nur von der übergeordneten Klasse überschrieben werden kann Haha, es ist in der Tat etwas schwierig, den Mechanismus zu verstehen. Das sogenannte „Übung ist das einzige Kriterium zum Testen von C#“. >In C# steht es Ihnen frei, der abgeleiteten Klasse eine Methode hinzuzufügen oder die Methode der übergeordneten Klasse zu überschreiben, wie unten gezeigt, es ist sehr einfach:
Klassenbasis {}
Klasse abgeleitet: Basis{
public void F() {}
class Derived: Base
{
public void F() {}
}
Das Obige ist das SUNWEN-Tutorial – C# Advanced (6) Für weitere verwandte Inhalte zahlen Sie bitte Achtung auf die chinesische PHP-Website (www.php.cn)!