5

既然人们已经使用 C# 4.0 一段时间了,我想我会看到人们最常使用“动态”类型的情况,为什么这比以前更好地帮助他们解决了问题?

4

2 回答 2

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);

会变成:

dynamic calc = GetCalculator();
int sum = calc.Add(10, 20);

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

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

于 2010-05-13T17:05:16.760 回答
2

它还用于嵌入动态语言(如 IronPython/IronRuby)以允许加载外部源文件中定义的类型,并在 C# 中更直接地访问它们

于 2010-05-13T17:08:35.083 回答