Heim > Backend-Entwicklung > C++ > Was bedeutet das Schlüsselwort „new' in einer C#-Methodensignatur?

Was bedeutet das Schlüsselwort „new' in einer C#-Methodensignatur?

Patricia Arquette
Freigeben: 2025-01-03 02:17:39
Original
638 Leute haben es durchsucht

What Does the `new` Keyword Mean in a C# Method Signature?

Das neue Schlüsselwort in Methodensignaturen verstehen

Beim Refactoring von Code tauchte eine ungewöhnliche Methodensignatur auf:

private static new MyObject CreateSomething()
{
  return new MyObject{"Something New"};
}
Nach dem Login kopieren

Frage: Welche Bedeutung hat das neue Schlüsselwort in dieser Methodensignatur? Handelt es sich um eine Funktion, die in C# 3.0 eingeführt wurde? Wie unterscheidet es sich vom Override?

Antwort:

Das neue Schlüsselwort in einer Methodensignatur dient einem anderen Zweck als Override. Laut der MSDN-Dokumentation von Microsoft können geerbte Mitglieder ausgeblendet werden.

Ein Beispiel, das den Unterschied veranschaulicht:

public class A
{
   public virtual void One();
   public void Two();
}

public class B : A
{
   public override void One();
   public new 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
Nach dem Login kopieren

In diesem Beispiel wird Override für die One-Methode verwendet, um deren Implementierung in zu überschreiben die Basisklasse A. Andererseits wird new bei der Two-Methode verwendet, um die geerbte Implementierung von A zu verbergen.

Schlüssel Unterschied:

override modifiziert virtuelle oder abstrakte Methoden, um unterschiedliche Implementierungen in abgeleiteten Klassen bereitzustellen. Im Gegensatz dazu verbirgt „new“ geerbte Mitglieder, sowohl virtuelle als auch nicht virtuelle, sodass neue Implementierungen in abgeleiteten Klassen bereitgestellt werden können.

Das obige ist der detaillierte Inhalt vonWas bedeutet das Schlüsselwort „new' in einer C#-Methodensignatur?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage