2009-01-31 44 views
1

ASP.NET MVC控制器类中的UpdateModel有许多重载。泛型UpdateModel <T>与MVC'Controller'中的UpdateModel有什么不同?

其中一些是通用的,有些不是。

显然我想使用通用版本,但我没有看到它为我实际做了什么? 不是UpdateModel只是一种使用反射填充属性的方法。

那么这是什么之间的区别:

 UpdateModel<ContestModel>(model); 

 UpdateModel(model); 

是反射只是有点快,如果它知道类型 - 或者是有其他的原因?

回答

6

没有任何UpdateModel重载没有泛型类型签名。你所看到的是编译器有多聪明。当调用具有通用签名的方法并且其中一个参数是相同的泛型类型时,编译器将为您推断该类型。

换句话说,你发布的这两个例子在编译器的眼中完全一样。

+0

啊,这是有道理的。我想我错过了,如果它出现在框架中的任何其他地方。谢谢 – 2009-01-31 10:57:44