在 C# 4.0 演示中,我看到很多使用动态类型的代码。例如,以下代码设置 Excel 单元格的值:
excel.Cells[1, 1].Value = ...
但是,您也可以使用强制转换以早期绑定方式访问单元:
((范围)excel.Cells[1, 1]).Value = ...;
为什么 Excel COM 库不首先将 Cell 类型描述为 Range 类型?同样,以下方法的所有参数都是动态的:
excel.ActiveWorkbook.Charts.Add(...)
为什么论点不能是静态的?查看 Excel 对象模型,到处都有动态类型。这是由于 COM 表达能力的限制吗?在 COM 库中使用动态类型而不是静态类型时是否存在模式?