动态关键词C#4.0

动态关键词C#4.0,c#,generics,c#-4.0,C#,Generics,C# 4.0,我有一个声明为动态类型的属性 public dynamic Data {get;set;} 稍后在某些方法中,数据类型变为System.Collections.Generic.List 因此,如果使用Data.AsQueryable()我当前得到“System.Collections.Generic.List,dynamic无法与扩展方法配合使用 7.6.5.2扩展方法调用 …如果 调用不适用 方法,尝试处理 构造作为扩展方法 调用。如果expr或任何参数 具有编译时类型dynamic, 扩

我有一个声明为动态类型的属性

 public dynamic Data {get;set;}
稍后在某些方法中,数据类型变为System.Collections.Generic.List
因此,如果使用Data.AsQueryable()我当前得到“System.Collections.Generic.List
dynamic
无法与扩展方法配合使用

7.6.5.2扩展方法调用

…如果 调用不适用 方法,尝试处理 构造作为扩展方法 调用。如果expr或任何参数 具有编译时类型dynamic, 扩展方法将不适用

如中所述,必须在运行时为每个动态调用提供静态上下文(使用
指令适用于
),以确定可以应用哪些扩展方法,而这些方法目前尚未实现


您是否尝试将扩展方法作为“普通”静态方法调用?例如(如果您打算调用其他方法,请进行修改):
System.Linq.Queryable.AsQueryable(数据)

好的。很高兴听到它对你有用。只是说;
动态
可能会被过度使用……这可能是其中之一。太棒了,非常感谢,这个网站真的是一个很好的资源beginners@Daniel约瑟夫:干杯。也许在该语言的未来版本中,您当前的代码“会正常工作”。