问题 .net 4.0中即将推出的“动态”关键字将如何让我的生活更美好?


我不太明白它会让我做什么(或逃脱:)


7412
2018-03-27 10:34


起源



答案:


两大领域是:

  • 使用COM程序集,其中方法返回模糊类型 - 因此您基本上可以使用后期绑定
  • 使用DLR类型

其他用途包括:

  • 鸭子打字没有界面
  • Silverlight与主机页面的DOM交谈
  • 与xml文件交谈。

在C#本身中,这允许一些事情,例如泛型运算符的基本方法:

static T Add<T>(T arg1, T arg2) { // doesn't work in CTP
     return ((dynamic)arg1) + ((dynamic)arg2);
}

(当然,我认为 这个 是一个更好(更有效)的答案)


5
2018-03-27 10:40



除了你的上一个链接,我发现这是一个很好的例子: blogs.msdn.com/lucabol/archive/2009/02/05/...虽然我想知道性能影响是什么。 - Razzie
@Razzie - 事实上,一旦CTP包含新位,我就准备好了测试工具;-p - Marc Gravell♦


答案:


两大领域是:

  • 使用COM程序集,其中方法返回模糊类型 - 因此您基本上可以使用后期绑定
  • 使用DLR类型

其他用途包括:

  • 鸭子打字没有界面
  • Silverlight与主机页面的DOM交谈
  • 与xml文件交谈。

在C#本身中,这允许一些事情,例如泛型运算符的基本方法:

static T Add<T>(T arg1, T arg2) { // doesn't work in CTP
     return ((dynamic)arg1) + ((dynamic)arg2);
}

(当然,我认为 这个 是一个更好(更有效)的答案)


5
2018-03-27 10:40



除了你的上一个链接,我发现这是一个很好的例子: blogs.msdn.com/lucabol/archive/2009/02/05/...虽然我想知道性能影响是什么。 - Razzie
@Razzie - 事实上,一旦CTP包含新位,我就准备好了测试工具;-p - Marc Gravell♦


来自Charlie Calvert的博客:

有用的场景

新的动态查找支持将启用三种主要方案:

  1. 办公自动化和其他COM Interop方案
  2. 消费用动态语言编写的类型
  3. 增强对反射的支持

在这里阅读更多: http://blogs.msdn.com/charlie/archive/2008/01/25/future-focus.aspx


5
2018-03-27 10:39





有一些播客关于功能本身以及如何使用它:


0
2018-03-27 11:11