Dynamic C#4.0动态类型的最常见应用
现在人们已经使用C#4.0有一段时间了,我想我应该看看人们是如何最经常地使用“dynamic”类型的,为什么这能帮助他们比以前更好地解决问题?例如,在使用反射时 例如,类似以下内容:Dynamic C#4.0动态类型的最常见应用,dynamic,c#-4.0,dynamic-language-runtime,Dynamic,C# 4.0,Dynamic Language Runtime,现在人们已经使用C#4.0有一段时间了,我想我应该看看人们是如何最经常地使用“dynamic”类型的,为什么这能帮助他们比以前更好地解决问题?例如,在使用反射时 例如,类似以下内容: object calc = GetCalculator(); Type calcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 2
object calc = GetCalculator();
Type calcType = calc.GetType();
object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 });
int sum = Convert.ToInt32(res);
将变成:
dynamic calc = GetCalculator();
int sum = calc.Add(10, 20);
我认为这是一个很大的进步
但是,还有更多的主题可以让它派上用场。例如,当使用COM互操作对象时,这可能会派上用场,请查看:
在嵌入动态语言(如IronPython/IronRuby)时,也可以使用它来加载外部源文件中定义的类型,并在C语言中更直接地访问它们#