使用带C#调用的可选参数调用Visual Basic函数

时间:2010-11-03 15:10:34

标签: c# vb.net

我使用客户端C#程序在不同的层上与Visual Basic代码进行交互。 Visual Basic函数签名如下所示:

Public Sub toggleExclusion( _
    ByVal mouse As Double, _
    ByVal study As Integer, _
    Optional ByVal box As Integer = 0)

当我从C#中调用它时:

_obj.toggleExclusion(mouse, study)

我收到错误,说没有重载的toggleExclusion方法有两个参数。为什么呢?

3 个答案:

答案 0 :(得分:3)

这取决于C#版本。较旧的C#版本尚不支持可选参数 - 您始终需要指定所有参数。由于也支持C#4可选参数。

答案 1 :(得分:1)

解决方法是传递可选参数 - 因为它有一个默认值,如果你只是传递它就没有损失。

答案 2 :(得分:0)

您可以使用System.Reflection.Missing.Value。我不确定它是否适用于Visual Basic调用。