.NET 4.0 中动态语言运行时有哪些限制?
我知道不支持匿名函数作为动态方法调用的参数。 .NET 4.0 中的 DLR 还有哪些其他此类限制?
I know that anonymous functions are not supported as arguments to a dynamic method call. What are other such limitations of DLR in .NET 4.0?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用匿名函数,只需首先对它们进行强制转换:
方法组转换也是如此:
到目前为止我遇到的其他限制:
dynamic
您不能使用
dynamic< /code> 作为类声明的接口中的类型参数,但您可以将其用作基类的类型参数,即
扩展方法在执行时不可发现(但您可以使用动态参数直接调用静态方法)
dynamic[]
转换为IEnumerable
- 该问题将在该版本中修复。dynamic
作为基类(请注意,这些是 C# 4.0 的限制,就像 DLR 本身的限制一样。我的印象是您的意思就是这样。)
You can use anonymous functions, you just have to cast them first:
The same is true of method group conversions:
Other restrictions I've encountered so far:
dynamic
in a type constraintYou can't use
dynamic
as a type argument in an interface for a class declaration, but you can use it as a type argument for a base class, i.e.Extension methods aren't discoverable at execution time (but you can call the static method directly with dynamic arguments)
dynamic[]
toIEnumerable<dynamic>
- that will be fixed for the release.dynamic
as a base class(Note that these are limitations of C# 4.0 as much as of the DLR itself. I got the impression that was what you meant though.)