给出一个矩形列表,
var myList = new List<Rectangle>();
我无法在此列表中添加除矩形之外的任何内容,因此哪些因素会让我更喜欢
Rectangle lastRect = myList.Last<Rectangle>();
简单地
Rectangle lastRect = myList.Last();
答案 0 :(得分:5)
这些完全相同。
问题是,如果可能的话,编译器使用类型推断来理解类型是什么
它看到你在泛型类型上使用泛型函数,并尝试在它们之间进行匹配。它有效。
简答:这些是相同的,但编译器会使用类型推断为您添加<Rectangle>
。
答案 1 :(得分:1)
为了支持Rubys的答案,编译器在没有类型参数的情况下调用Last方法时会推断出类型。
生成的最终IL完全相同 - 我刚检查过。