鑑於矩形列表,List.Last()和List.Last <T>()之間是否有任何顯着差異?
var myList = new List<Rectangle>();
我不能添加任何東西,但矩形到此列表,那麼什麼因素會令我更喜歡
Rectangle lastRect = myList.Last<Rectangle>();
在簡單
Rectangle lastRect = myList.Last();
鑑於矩形列表,List.Last()和List.Last <T>()之間是否有任何顯着差異?
var myList = new List<Rectangle>();
我不能添加任何東西,但矩形到此列表,那麼什麼因素會令我更喜歡
Rectangle lastRect = myList.Last<Rectangle>();
在簡單
Rectangle lastRect = myList.Last();
這些都是一模一樣。
問題是,編譯器使用類型推斷來了解類型是什麼,如果可能的話。
它看到你正在使用泛型函數,並試圖在它們之間進行匹配。它的工作原理。
簡短回答:這些都是一樣的,但編譯器會使用類型推斷爲您添加<Rectangle>
。
爲了支持Rubys的回答,編譯器在您調用Last方法而不使用類型參數時推斷該類型。
生成的最終IL完全相同 - 我只是檢查了一下。