List.Last()和List.Last <t>()?</t>之间是否有任何显着差异

时间:2010-05-06 08:36:22

标签: c# linq generics

给出一个矩形列表,

var myList = new List<Rectangle>();

我无法在此列表中添加除矩形之外的任何内容,因此哪些因素会让我更喜欢

Rectangle lastRect = myList.Last<Rectangle>();

简单地

Rectangle lastRect = myList.Last();

2 个答案:

答案 0 :(得分:5)

这些完全相同。
问题是,如果可能的话,编译器使用类型推断来理解类型是什么 它看到你在泛型类型上使用泛型函数,并尝试在它们之间进行匹配。它有效。

简答:这些是相同的,但编译器会使用类型推断为您添加<Rectangle>

答案 1 :(得分:1)

为了支持Rubys的答案,编译器在没有类型参数的情况下调用Last方法时会推断出类型。

生成的最终IL完全相同 - 我刚检查过。