在下面的代碼中使用動態類型的優點是什麼?在LINQ中使用動態類型
public static List<dynamic> GetEmployees()
{
List<Employee> source = GenerateEmployeeCollection();
var queyResult = from employee in source
where employee.Age > 20
select new { employee.FirstName, employee.Age };
return queyResult.ToList<dynamic>();
}
什麼時候你會去返回一個列表。
是爲了避免創建只能很少使用的類型?
我個人在這裏的觀點是「不這樣做」。你基本上將C#提供給你的所有好的類型安全性拋棄了,因爲你不想爲系統增加一個類型。在某些情況下,你應該這樣做,但我在這裏沒有看到它。 –
推測性的,但注意到匿名類型不能在方法範圍之外被引用,可能原來的編碼器並沒有像你說的那樣創建一個確定類型(以及不正確地拼寫'query')。我能想到的唯一可能的好處是在調用代碼中存在一些鴨式打印的通用性,其他方法返回具有「Age」和「FirstName」屬性的類型。確實非常危險的東西。 – StuartLC
匿名類型可以使方法/類內部的工作更容易一些。當你想要在外部實體中調用類方法的公共邊界時,應該使用類型來明確它們將返回的值,以迫使調用者深入閱讀實現以找出他們將獲得的內容背部。 – 48klocs