Excel 为变量数组设计的VB.NET选项显式和Office VSTO方法

Excel 为变量数组设计的VB.NET选项显式和Office VSTO方法,excel,vb.net,vsto,visio,Excel,Vb.net,Vsto,Visio,开发两个新的Office VSTO加载项,一个用于Microsoft Excel和Visio,我遇到了这个特殊问题 我非常喜欢在VB.NET中使用Option Strict On进行开发,原因很简单,这是一个很好的实践,可以节省我以后大量的调试时间 但是,许多Office对象方法,如Visio的此方法: 设计用于通过ByRef(啊!)来回传递(VBA)变体数组 (因为.net COM互操作非常慢,所以这些批量方法对于良好的用户体验是必要的) 我知道如何在VB.NET中创建这些数组以跨互操作工作

开发两个新的Office VSTO加载项,一个用于Microsoft Excel和Visio,我遇到了这个特殊问题

我非常喜欢在VB.NET中使用Option Strict On进行开发,原因很简单,这是一个很好的实践,可以节省我以后大量的调试时间

但是,许多Office对象方法,如Visio的此方法:

设计用于通过ByRef(啊!)来回传递(VBA)变体数组

(因为.net COM互操作非常慢,所以这些批量方法对于良好的用户体验是必要的)

我知道如何在VB.NET中创建这些数组以跨互操作工作,如:

Dim resultArray as Array
resultArray = Array.CreateInstance(GetType(Object), 1000)
这样的代码是有效的,但当然这种后期绑定违反了严格的规则选项,为大量潜在的bug打开了大门

我是否可以使用这些Office对象方法,以与选项显式打开的方式一起工作


感谢您分享您的知识和见解

如果需要使用后期绑定,则需要使用它,这需要
选项严格关闭
。好消息是,您可以在项目级别将其设置为
打开
,然后在文件级别将其设置为
关闭
,仅适用于那些需要使用后期绑定的代码文件。另一个好消息是VB支持分部类,因此您可以跨多个代码文件分解单个类。这使您能够使用项目设置
Option Strict On
,在文件级别仅将需要后期绑定的代码放入带有
Option Strict Off
的分部类,并将其他所有内容放入另一个代码文件中。您可以将一些方法分解为更小的部分,并将使用
选项严格关闭
写入的代码量降至绝对最小。

如果需要使用后期绑定,则需要使用它,这需要
选项严格关闭
。好消息是,您可以在项目级别将其设置为
打开
,然后在文件级别将其设置为
关闭
,仅适用于那些需要使用后期绑定的代码文件。另一个好消息是VB支持分部类,因此您可以跨多个代码文件分解单个类。这使您能够使用项目设置
Option Strict On
,在文件级别仅将需要后期绑定的代码放入带有
Option Strict Off
的分部类,并将其他所有内容放入另一个代码文件中。您可以将一些方法分解为更小的部分,并将使用
Option Strict Off
编写的代码量降至绝对最小。

您将
Option Explicit
Option Strict
混淆了。默认情况下,前者是上的,要求您在使用变量之前显式声明变量。默认情况下,后者是
关闭的
,需要严格键入,即没有隐式转换或后期绑定。是的,对不起,我当然是指选项严格!谢谢jmchilinney,我已经在问题文本中更正了它。您混淆了
选项显式
选项严格
。默认情况下,前者是上的,要求您在使用变量之前显式声明变量。默认情况下,后者是
关闭的
,需要严格键入,即没有隐式转换或后期绑定。是的,对不起,我当然是指选项严格!谢谢jmchilinney我已经在问题文本中更正了它。谢谢你知道这是可能的,并且是一个很好的问题解决方案,这是非常好的!谢谢,很高兴知道这是可能的,也是解决这个问题的一个很好的办法!