C#4.0动态类型的最常见应用程序

Dav*_*ale 5 dynamic-language-runtime dynamic c#-4.0

现在,人们已经使用C#4.0的同时,我想我会看到人们是如何最常使用的类型是"动态"和为什么这帮助他们解决他们的问题比他们可能以前做了什么?

Rod*_*eek 3

例如,当使用反射时。

例如,这样的事情:

object calc = GetCalculator();
Type calcType = calc.GetType();
object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 });
int sum = Convert.ToInt32(res);
Run Code Online (Sandbox Code Playgroud)

会变成:

dynamic calc = GetCalculator();
int sum = calc.Add(10, 20);
Run Code Online (Sandbox Code Playgroud)

我认为这是一个很大的进步。

但还有更多的主题可以派上用场。例如,当使用 COM 互操作对象时,这可能会派上用场,请参阅: http://www.devx.com/dotnet/Article/42590