通过C#调用使用可选参数调用Visual Basic函数
我正在使用客户端程序与另一层上的Visual Basic代码交互。Visual Basic函数签名如下所示:通过C#调用使用可选参数调用Visual Basic函数,c#,vb.net,C#,Vb.net,我正在使用客户端程序与另一层上的Visual Basic代码交互。Visual Basic函数签名如下所示: Public Sub toggleExclusion( _ ByVal mouse As Double, _ ByVal study As Integer, _ Optional ByVal box As Integer = 0) 当我从C#这样称呼它时: 我得到一个错误,说toggleExclusion的重载方法不接受两个参数。为什么?这取决于C版本。较旧的C
Public Sub toggleExclusion( _
ByVal mouse As Double, _
ByVal study As Integer, _
Optional ByVal box As Integer = 0)
当我从C#这样称呼它时:
我得到一个错误,说toggleExclusion的重载方法不接受两个参数。为什么?这取决于C版本。较旧的C#版本还不支持可选参数——您始终需要指定所有参数。因为也支持C#4可选参数。一个解决办法是传递可选参数-因为它有一个默认值,只要传递它就不会丢失。您可能可以使用
System.Reflection.Missing.Value
。我不确定它是否适用于Visual Basic调用。C#4是添加可选参数的地方,我相信。如果传入,则采用传入值,而不是可选默认值。如果可选默认值恰好是default(T),则此选项可以正常工作,但如果默认值是42
,则可能不起作用。在这种情况下,传入的值将覆盖它。
_obj.toggleExclusion(mouse, study)