'ref' 和'out' 參數中的多態性限制
多態性是物件導向程式設計中的基本概念,允許物件具有不同的類型類型被視為公共超類型的物件。但是,當涉及到“ref”和“out”參數時,不支援多態性。
要理解原因,請考慮以下程式碼:
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) {} }
此程式碼無法編譯當透過引用「B」呼叫「Foo2」時,因為「ref」和「out」參數不支援
讓我們探討這個限制背後的原因:
總而言之,雖然多態性是物件導向程式設計的強大特性,但出於封裝、型別安全和效能的考慮,不支援 'ref' 和 'out' 參數。
以上是為什麼多型性不能與 C# 中的「ref」和「out」參數一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!