'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) {} }
이 코드는 컴파일되지 않습니다. 'Foo2'가 'B'에 대한 참조로 호출되는 경우 'ref' 및 'out' 매개변수는 다형성을 지원할 수 없기 때문입니다.
이유를 살펴보겠습니다. 이 제한 사항:
결론적으로 다형성은 는 객체 지향 프로그래밍의 강력한 기능으로, 캡슐화, 유형 안전성 및 성능을 고려하여 'ref' 및 'out' 매개변수에 대해서는 지원되지 않습니다.
위 내용은 다형성이 C#의 'ref' 및 'out' 매개변수와 함께 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!