Heim >Backend-Entwicklung >C++ >Was bewirkt das Schlüsselwort „new' in C#-Methodensignaturen?
Das „neue“ Schlüsselwort in Methodensignaturen verstehen
Während einer Code-Umgestaltung hat ein Entwickler versehentlich ein neues Schlüsselwort in eine Methodensignatur eingeführt:
private static new MyObject CreateSomething() { return new MyObject{"Something New"}; }
Dies wird ordnungsgemäß in C# kompiliert, was Fragen zur Bedeutung des neuen Schlüsselworts in der Methode aufwirft Signaturen.
Was bedeutet das Schlüsselwort „new“?
Wie in der MSDN-Dokumentation erwähnt, ändert das Schlüsselwort new in einer Methodensignatur ihr Referenzierungsverhalten:
Beispiel:
Betrachten Sie den folgenden Code:
public class A { public virtual void One(); public static void Two(); } public class B : A { public new void One(); public override void Two(); } B b = new B(); A a = b as A; a.One(); // Calls implementation in B a.Two(); // Calls implementation in A b.One(); // Calls implementation in B b.Two(); // Calls implementation in B
In diesem Beispiel definiert die Klasse B beide Einsen neu Methode (mit new) und die Two-Methode (mit override). Durch die Verwendung von new for One verbirgt Klasse B die geerbte Implementierung und führt eine eigene ein. Durch die Verwendung von Override für Two wird jedoch die geerbte virtuelle Methode überschrieben.
Daher bietet das neue Schlüsselwort Flexibilität, indem es das Überschreiben oder Ausblenden geerbter Methoden in Fällen ermöglicht, in denen Override nicht anwendbar ist, z. B. für nicht virtuelle und statische Methoden.
Das obige ist der detaillierte Inhalt vonWas bewirkt das Schlüsselwort „new' in C#-Methodensignaturen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!