class DynamicExcel { static void Main() //在Excel中将dynamic隐式转换为其他类型 COM和Office { var app = new Application { Visible = true }; //app {Microsoft.Office.Interop.Excel.ApplicationClass} app.Workbooks.Add(); Worksheet worksheet = app.ActiveSheet; //worksheet COM 对象 Range start = worksheet.Cells[1, 1]; //start COM 对象 Range end = worksheet.Cells[1, 20]; //end COM 对象 worksheet.Range[start, end].Value = Enumerable.Range(1, 20).ToArray(); } }
在每一行都规定了我所期望的类型,如果有任何问题,可以立即发现,而不必等到试图以某种
可能得不到支持的方式使用某个值。
使用dynamic,我们不必得到期望的确切类型,而可以使用它的值,并且只要它支持的所有的操
作,就不会有任何问题。另一方面,使用静态类型,还可以通过IntelliSense在任意阶段查看可
使用的值。我们仍使用动态类型为Worksheet和Range提供隐式转换。
从静态类型到动态类型转换可能开始看上去不太显眼,但代码复杂性增加,消除强制转换带来的
可读性也会随之增强。
从某种程度来说,COM是一项相对旧的技术,已是昨日黄花。
输出
打开excel 从 a1 到 t1 填入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20