Generic UpdateModel <t>与MVC'Controller'中的UpdateModel有何不同?</t>

时间:2009-01-31 05:42:21

标签: asp.net-mvc model

ASP.NET MVC控制器类中的UpdateModel有很多重载。

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

显然我想使用通用版本,但我看不出它对我的影响是什么? UpdateModel不是一种使用反射填充属性的方法。

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

        UpdateModel<ContestModel>(model);

VS

        UpdateModel(model);

如果它知道类型,反射会更快一点 - 还是有另一个原因?

1 个答案:

答案 0 :(得分:6)

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

换句话说,您发布的那两个示例在编译器的眼中完全相同。