如何:强制转换 Office 应用程序返回的对象
更新:2007 年 11 月
默认情况下,在编写托管代码时必须指定对象的类型。但是,Microsoft Office 主互操作程序集中的许多方法和属性将返回类型 Object,因为它们能够返回一些不同的类型。当返回对象时,必须显式将该对象转换(在 Visual Basic 中)或强制转换(在 C# 中)为正确的类型。通过转换或强制转换对象,可以在代码编辑器中为该对象启用 IntelliSense 功能。
有关在 Visual Basic 中转换的信息,请参见隐式转换和显式转换和 CType 函数。有关在 C# 中强制转换的信息,请参见 () 运算符(C# 参考)。
下面的过程是将 Microsoft Office 应用程序返回的对象强制转换为在托管代码中使用的特定类型的示例。此示例使用 Microsoft Office Excel 的文档级自定义项。
将对象强制转换为特定类型
向单元格 A1 中添加一个 NamedRange 控件。
Dim NamedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _ Me.Controls.AddNamedRange(Me.Range("A1"), "NamedRange1")
Microsoft.Office.Tools.Excel.NamedRange NamedRange1 = this.Controls.AddNamedRange(this.Range["A1", missing], "NamedRange1");
将从命名范围的 ColumnWidth 属性返回的对象强制转换为 Double,并将其分配给变量。
尽管 ColumnWidth 属性的基础值为十进制值,但该属性将此值作为 Object 类型返回。必须将 Object 强制转换为 Double 以直接使用十进制值。
Dim width As Double = CType(NamedRange1.ColumnWidth, Double)
double width = (double)NamedRange1.ColumnWidth;
在对话框中显示 NamedRange 控件的列宽。
MessageBox.Show("Column width: " & width.ToString())
MessageBox.Show("Column width: " + width.ToString());
请参见
概念
托管代码与使用 Visual Studio 进行 Office 编程