可选参数,默认值为VB6

JMK*_*JMK 1 c# vb6

我试图在VB6中重新创建以下C#代码:

private void ChangeTab(string tabName, bool clearAll = true)
{
    Yadyyada(tabName);

    if (clearAll)
    {
        DoMoreStuff();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止:

Private Sub ChangeTab(ByVal tabName As String, Optional ByVal clearAll As Boolean)

    Yadyyada(tabName)

    If clearAll = True Then
        DoMoreStuff
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

到目前为止除了默认参数之外这么好.clearAll我可以在方法签名中以与在C#中相同的方式分配默认值true,或者我只需要在方法的开头执行此操作吗?

谢谢

Sim*_*ead 9

哇这让我退了..我可以问你为什么要倒退技术吗?

无论如何,您可以使用Optional关键字:

Private Sub ChangeTab(ByVal tabName As String, Optional ByVal clearAll As Boolean = True)
Run Code Online (Sandbox Code Playgroud)

您的问题是使用ByVal.除非明确说明,否则从内存来看,VB6中的所有内容都是ByVal.

编辑:我错了.默认是ByRef ..它已经这么久了!

  • 非常感谢!并没有真正向后转换,只是尝试用一种语言做一些我知道如何用另一种语言做的事情! (2认同)