我试图在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,或者我只需要在方法的开头执行此操作吗?
谢谢
哇这让我退了..我可以问你为什么要倒退技术吗?
无论如何,您可以使用Optional关键字:
Private Sub ChangeTab(ByVal tabName As String, Optional ByVal clearAll As Boolean = True)
Run Code Online (Sandbox Code Playgroud)
您的问题是使用ByVal.除非明确说明,否则从内存来看,VB6中的所有内容都是ByVal.
编辑:我错了.默认是ByRef ..它已经这么久了!