gpt4 book ai didi

excel - 为变体数组设计的 VB.NET Option Explicit 和 Office VSTO 方法

转载 作者:行者123 更新时间:2023-12-04 21:45:20 25 4
gpt4 key购买 nike

开发两个新的 Office VSTO 插件,一个用于 Microsoft Excel 和 Visio,我遇到了这个特殊问题。
我非常喜欢使用 Option Strict On 在 VB.NET 中进行开发,原因很简单,因为它是一种很好的做法,并且可以为我节省大量的调试时间。
但是,很多 Office 对象方法都像 Visio 的这样一个:
https://docs.microsoft.com/en-us/office/vba/api/visio.page.getresults
设计用于来回传递(VBA)变体数组 ByRef(啊!)。
(因为 .net COM 互操作非常慢,所以这些批量方法对于良好的用户体验是必要的)
我知道如何在 VB.NET 中创建这些数组以跨互操作工作,例如:

Dim resultArray as Array
resultArray = Array.CreateInstance(GetType(Object), 1000)
这样的代码可以工作,但是这种后期绑定(bind)当然违反了 Option Strict On 规则,并为大量潜在错误打开了大门。
有没有一种方法可以让我以与 Option Explicit On 一起使用的方式使用这些 Office 对象方法?
感谢您分享您的知识和见解!

最佳答案

如果需要使用后期绑定(bind)则需要使用,需要Option Strict Off .好消息是你可以设置On在项目级别,然后是 Off在文件级别仅适用于那些需要使用后期绑定(bind)的代码文件。另一个好消息是 VB 支持分部类,因此您可以跨多个代码文件拆分单个类。这使您可以仅将需要后期绑定(bind)的代码放入带有 Option Strict Off 的部分类中。使用 Option Strict On 的项目设置在文件级别和另一个代码文件中的所有其他内容.您可以将一些方法分解成更小的部分,并减少使用 Option Strict Off 编写的代码量。到绝对最低限度。

关于excel - 为变体数组设计的 VB.NET Option Explicit 和 Office VSTO 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67648102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com