2009-01-31 1 views
1

ASP.NET MVC 컨트롤러 클래스에는 UpdateModel에 많은 오버로드가 있습니다.Generic UpdateModel <T>은 MVC 'Controller'의 UpdateModel과 어떻게 다른가요?

일부는 일반적이며 일부는 그렇지 않습니다.

분명히 제네릭 버전을 사용하고 싶지만 실제로 그것이 나를 위해 무엇을하는지 보지 못합니까? UpdateModel은 리플렉션을 사용하여 속성을 채우는 방법이 아닙니다. - 또는 다른 이유가

 UpdateModel(model); 

가 조금 더 빨리 반영이 유형을 알고 있다면

 UpdateModel<ContestModel>(model); 

대 :

그래서이 차이점은 무엇입니까?

답변

6

제네릭 형식 서명이없는 UpdateModel 오버로드가 없습니다. 당신이보고있는 것은 컴파일러가 얼마나 똑똑한 지입니다. 일반 서명이있는 메서드를 호출 할 때 매개 변수 중 하나가 동일한 제네릭 형식이면 컴파일러에서 해당 형식을 유추합니다.

즉, 게시 한 두 예제는 컴파일러의 관점에서 볼 때 똑같습니다.

+0

아, 맞습니다. 그것이 프레임 워크의 다른 곳에서 나타나는 경우 나는 그것을 놓친 것 같아요. 감사 –

관련 문제