gpt4 book ai didi

c# - VSTO:操作 COM 对象 ("one dot good, two dots bad")

转载 作者:行者123 更新时间:2023-11-30 14:09:28 30 4
gpt4 key购买 nike

我有 Excel VBA 背景,所以我经常编写如下代码:

Range("myRange").Offset(0, 1).Resize(1, ccData).EntireColumn.Delete

我现在转向 VSTO,并且一直在阅读有关 RCW 计数器等的内容,以及显式释放 COM 对象的需要。基本建议似乎是:不要将对 Excel 对象的引用链接在一起(正如我上面所说的)——因此“一个点好,两个点坏”。我的问题是,上面的代码不是进入 VSTO 的方式,我是否正确?如果是这样,是否意味着我需要明确声明上述链中隐含的 3 个范围(Offset、Resize 和 EntireColumn)?

或者甚至是这样的:

rng.Columns.Count

其中 rng 是声明的范围?我是否应该为 rng.Columns 分配一个名称以获得范围内的列数??

最佳答案

在“双点规则”的愚蠢背后存在着非常有害的 cargo 崇拜,它完全无法让 C# 程序员从第 4 版开始摆脱困境。而且它比 simple way 更痛苦。使 Office 程序按需退出。

但这不是您根本的问题,cargo cult 仅适用于使用 Automation 激活 Office 程序的进程外程序。您的代码实际上在 Office 程序内部运行,您当然不关心程序何时终止。因为这也会终止您的代码。

只需按照编写常规 C# 代码的方式编写代码,GC 不需要任何帮助。

关于c# - VSTO:操作 COM 对象 ("one dot good, two dots bad"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29067714/

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