Heim >Backend-Entwicklung >C++ >Warum funktioniert Polymorphismus nicht mit den Parametern „ref' und „out' in C#?
Polymorphismus-Einschränkungen in den Parametern „ref“ und „out“
Polymorphismus, ein grundlegendes Konzept in der objektorientierten Programmierung, ermöglicht variierende Objekte Typen, die als Objekte eines gemeinsamen Supertyps behandelt werden sollen. Wenn es jedoch um die Parameter „ref“ und „out“ geht, wird Polymorphismus nicht unterstützt.
Um zu verstehen, warum, betrachten Sie den folgenden Code:
class A {} class B : A {} class C { C() { var b = new B(); Foo(b); Foo2(ref b); // Compile-time error: "The 'ref' argument doesn't match the parameter type" } void Foo(A a) {} void Foo2(ref A a) {} }
Dieser Code wird nicht kompiliert wenn „Foo2“ mit einem Verweis auf „B“ aufgerufen wird, weil die Parameter „ref“ und „out“ keinen Polymorphismus unterstützen können.
Lassen Sie uns die Gründe dafür untersuchen Einschränkung:
Zusammenfassend lässt sich sagen, dass Polymorphismus eine leistungsstarke Lösung ist Da es sich um eine Funktion der objektorientierten Programmierung handelt, wird sie aus Gründen der Kapselung, Typsicherheit und Leistung nicht für die Parameter „ref“ und „out“ unterstützt.
Das obige ist der detaillierte Inhalt vonWarum funktioniert Polymorphismus nicht mit den Parametern „ref' und „out' in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!