我了解,通常泛型是为了保证编译时间安全,并允许我们保留强类型集合。然后,泛型如何允许我们存储匿名类型,例如
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);