Der Rückgabetyp in der C#ermöglicht es der Ableitungsklasse, einen spezifischeren Typ zurückzugeben als ihre Basisklasse. Diese Funktion ermöglicht es, eine Methode zu erstellen, die sowohl berufliche Verhaltensweisen liefern als auch die Integrität der hierarchischen Struktur aufrechterhalten kann.
Schauen wir uns ein Beispiel an:
In dieser Szene gibt es eine Methode, um eine Zeichenfolge in der
public abstract class Animal { public abstract string GetName(); } public class Cat : Animal { public string GetMeow(); }
Cat
In der ersten Antwort im Jahr 2011 unterstützte C#keine Rückgabe von Arten von kollaborativen Änderungen, und aufgrund der Einschränkungen der öffentlichen Sprachen (CLR) war es unwahrscheinlich, dass es in Zukunft realisiert wurde. In der neuesten Version von C#hat sich diese Situation jedoch geändert. Siehe den Link -Artikel "
Die kollaborative Rückgabe", verstehen Vor der Einführung der Rückgabetyp -CO -Changes besteht eine Lösung darin, eine Zwischenmethode einzuführen, um den Rückgabewert der abgeleiteten Klasse zu erhalten.
Mit dieser Technologie kann ein spezifisches
public abstract class Animal { public abstract object GetContents(); public Animal Contents() { return (Animal)GetContents(); } } public class Cat : Animal { protected override object GetContents() { return this; } public new string Contents() { return GetMeow(); } }
abrufen und in diesem Beispiel eine Zeichenfolge zurückgeben. Cat
Contents
Obwohl die Version vor C# 9.0 die Koordination von Rückgabetyp nicht direkt unterstützt, kann die besprochene Lösung dennoch als Methode verwendet werden, um das erforderliche Verhalten zu realisieren. Es ist jedoch zu beachten, dass in der höheren Version von C#die formale Implementierung der Koordination von Rückgabetyp eine elegantere und prägnantere Lösung darstellt.
Das obige ist der detaillierte Inhalt vonWird die Kovarianztyp der C# -Unterstützung für die Rückkehrtyp und wie kann sie erreicht werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!