我了解,通常泛型是为了保证编译时间安全,并允许我们保留强类型集合。然后,泛型如何允许我们存储匿名类型,例如

List<object> TestList = new List<object>();
TestList.Add(new { id = 7, Name = "JonSkeet" });
TestList.Add(new { id = 11, Name = "Marc Gravell" });
TestList.Add(new { id = 31, Name = "Jason" });

最佳答案

之所以可行,是因为object是.Net中所有实例的根类型。因此,任何表达式都可以用于期望object的位置,因为它们都符合System.object的基本约定。

例如,以下内容完全合法。

List<object> TestList = new List<object>();
TestList.Add(new { id = 7, Name = "JonSkeet" });
TestList.Add("Foo");
TestList.Add(42);

10-06 13:46