如何区分两个方法重载都带有 ParamArray 参数?

How to distinguish between two method overloads both with a ParamArray parameter?

具有以下方法签名

Public Sub RareSub(a as string, ParamArray c as string())
Public Sub RareSub(a as string, b as string, ParamArray c as string())

在不将 b 参数作为 c 数组的一部分的情况下调用每个重载的正确方法是什么?

您需要使用名称进行调用,这样编译器就会知道其中的区别

RareSub(a:=aValue, b:=bValue)

ParamArray 接受数组作为参数列表。

如果您想使用第一种方法(带有一个参数和 ParamArray),则为 ParamArray 添加参数作为数组声明

RareSub("Value", {"ParamArrayvalue"})
'or
RareSub("Value", {"ParamArrayvalue1", "ParamArrayvalue2"})

正如评论中提到的,当至少有两个 String 类型的参数被传递给方法

时,将始终调用另一个重载方法