2010-12-10 2 views
1

이번에는 분산에 대해 약간 다른 질문입니다.C#의 형식 시그니처 차이 (오버플로 관련)

나는 C#이 가상 함수를 반 변형 함수로 재정의 (override) 할 수 없다는 것을 실험적으로 생각합니까? 만약 그렇다면 어떻게해야합니까? "적절한 메소드 오버로드를 찾을 수 없습니다." 그렇지 않다면 왜 안 되니? 기본 클래스가 값이 항상 int이며 하위 클래스가 객체를 가져올 수 있다고 지정하는 경우 문제는 어디에 있습니까?

형태를 돌려주는 것이 같은

는 자신의 설정을 무시하고 서명에 공변해야

언어는 당신이 할 수있는 무엇

? (C++/Java 내가 당신을 쳐다보고있다.) 그리고 그들이 당신을 사용하게한다면, 어떤 타입을 변형시킬 것인가? (반환 유형/인수 목록 등)

여러 번 재정의 할 수 있습니까? 나는 서명이 기술적으로 독특하다면 왜 안 보이지.

Why does C#/CLR not support method override co/contra-variance?

나는 이것을 읽고 나는 질문의 아무런 답변을 볼 수 없습니다. 일반 분산에 대해 알고 있고, 그것이 굉장하다는 것을 알고 있습니다. C#뿐 아니라 C#에서도 (즉, 이에 국한되지는 않음) 메소드 서명 변화에 대해 알고 싶습니다. 그것이 존재하지 않는다면 나는 이것에 대한 확인과 설명을하고 싶다. (구현의 세부 사항은 틀린가? 내 유형 이론이 틀린가? CLR/C#이 이런 특정 기능을 지원하지 않는가? CLR을 구현할 필요가 없으므로 특정 복잡한 세부 사항을 알지 못한다고 생각한 이후로 생각해 보았습니다.)

답변

0

C# 사양의 10.6.4 절에서 오버라이드가 동일해야한다고 나와 있습니다 서명