我正在使用 C# 4.0 实例化一个Excel.Application
并打开一个Excel.Workbook
. 剥离下来,我的代码如下所示:
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open("someFile");
该Open()
方法有很多我不需要提供的可选值。这很方便,只是我不知道那些可选参数的默认值是什么。因此,我无法决定是否必须提供价值。
在这种情况下,我可以在 MSDN 文档中找到一些参数所需的信息。是否有一种通用方法来确定 COM 互操作类型中可选参数的默认值?
更新:
使用oleview
on MSO.dll
,我检查了Workbook
接口的相应 IDL。对于该SaveAs()
方法,它看起来像这样:
HRESULT SaveAs(
[in, optional] VARIANT Filename,
[in, optional] VARIANT FileFormat,
[in, optional] VARIANT Password,
blahblah...
[in, optional, defaultvalue(1)] XlSaveAsAccessMode AccessMode,
blahblah...
[in, optional] VARIANT Local,
[in, lcid] long lcid);
在 Visual Studio 中,智能感知显示[object Filename = Type.Missing]
了大多数参数,我认为这是有道理的,因为 IDL 没有提供有关类型 ( VARIANT
) 或任何默认值的任何信息。然而,对于参数AccessMode
,IDL 提供了所需的信息并由智能感知显示。
所以我想现在的问题变成了:为什么 IDL 没有更具体地说明所有参数的类型(和默认值),就像它的 for 一样AccessMode
?