Can';无法理解在.net4中将dynamic与泛型集合一起使用时出现的异常
请检查以下代码:Can';无法理解在.net4中将dynamic与泛型集合一起使用时出现的异常,dynamic,.net-4.0,generic-collections,Dynamic,.net 4.0,Generic Collections,请检查以下代码: static void Main(string[] args) { IList<dynamic> items = new List<dynamic>(); items.Add(3); items.Add("solid"); dynamic i = new ExpandoObject(); items.Add(i); //System.Collections.Generic.IList<object>'
static void Main(string[] args) {
IList<dynamic> items = new List<dynamic>();
items.Add(3);
items.Add("solid");
dynamic i = new ExpandoObject();
items.Add(i); //System.Collections.Generic.IList<object>' does not contain a definition for 'Add'
Console.WriteLine();
}
static void Main(字符串[]args){
IList items=新列表();
增加(3)项;
项目。添加(“实体”);
动态i=新的ExpandoObject();
items.Add(i);//System.Collections.Generic.IList'不包含'Add'的定义
Console.WriteLine();
}
这是“动态”机制中的一个bug吗?看起来像一个bug(或者是一个功能请求):
这应该可以做到:
static void Main(string[] args) {
IList<dynamic> items = new List<dynamic>();
items.Add(3);
items.Add("solid");
dynamic i = new ExpandoObject();
items.Add((object) i); // type-cast dynamic object
Console.WriteLine();
}
static void Main(字符串[]args){
IList items=新列表();
增加(3)项;
项目。添加(“实体”);
动态i=新的ExpandoObject();
items.Add((object)i);//类型cast dynamic object
Console.WriteLine();
}
+1希望我能更多地了解动态绑定的复杂性。我刚刚试过这个,结果显示items.Add(newexpandoobject())代码>可以,但是项。添加((动态)新的ExpandooObject())代码>不是。Thx,技巧工作得很好,但我喜欢简单明了,而不是代码中的技巧:)