动态关键词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约瑟夫:干杯。也许在该语言的未来版本中,您当前的代码“会正常工作”。