欺骗.Net可能有令人讨厌的副作用,为COM提供可选的ref参数

时间:2015-08-23 17:12:10

标签: c# .net vba excel-vba com

最终编辑

我对“功能”进行了更全面的测试,并撰写了一篇完整的文章:Optional passed by reference parameters with C# for VBA COM APIs

欢迎任何反馈。

无论出于何种原因 C#,方法都不能可选 通过引用传递(标有ref或{{ 1}})参数。

但在 VBA VB6 COM 等其他基础设施中,这是可能的。

使用COM 使用VBA桥接C#时我找到了一种克服C#限制的方法,将out参数标记为ref,这是AFAIK的C#编译器在管道结束时生成。

[Optional]

这似乎很有魅力:当从VBA调用C#时,我可以省略void SomeDotNetCSMethod([Optional] ref someParameter) 参数,当然我可以从.Net / C#端读取和更改它们。

但由于我没有找到任何关于它的文章,我想确定这个“技巧”没有不良副作用。

你知道吗?你能想象吗?

修改

使用ref属性,我可能找到了让VBA看到参数默认值的方法,但仅适用于某些类型。

我会做更多测试以确认这是按预期工作的......

0 个答案:

没有答案