저는 스택 오버플로에 newby입니다. 그래서 제발 쉽게가주세요! 나는 C#을 깊이 읽었지만, 나는 내가 믿을 수없는 시나리오를 보았습니다. 웹의 빠른 검색은 어떤 결과도 던지지 않았습니다. 나는 형식 인수를 지정하지 않고 AreEqual()
를 호출 할 경우제네릭 메서드의 형식 인수에 대한 형식 유추
void AreEqual<T>(T expected, T actual)
void AreEqual(object expected, object actual)
:
AreEqual("Hello", "Hello")
이 방법의 일반 또는 제네릭이 아닌 버전
를 호출 나는 다음과 같은 오버로드 된 메서드를 정의하는 말? 제네릭 메서드가 유추 된 형식 인수를 사용하여 호출 되었습니까? 아니면 메서드 인수가System.Object
으로 암시 적으로 캐스트 된 비 제너릭 메서드입니까?
제 질문에 대한 답변을 드리겠습니다. 어떤 조언을 주셔서 미리 감사드립니다.
물론 이것을 확인하는 간단한 코드를 작성할 수 있습니다 ... –
http://blogs.msdn.com/b/ericlippert/archive/2009/07/30/generics-are-not-templates.aspx –
@ 미치 밀 - 사실이긴하지만 첫 번째 게시물을 작성하지 않아도됩니다. 그리고 다른 사람들이 대답을보기에 유용합니다. – zekesteer