有默认值的函数怎么写啊?如果我给他参数,它就用我的参数,如果没有给它参数,它就使用默认的参数。
就像msgbox,它的声明msgbox(prompt, [buttons as vbmsgboxstyle = vbokonly],[title],[helpfile],[context]) as vbmsgboxresult
使用msgbox的时候
msgbox "hello"
msgbox "hello",vbAbortRetryIgnore
msgbox "hello",vbAbortRetryIgnore,"title"
都可以。我要写这样的函数应该怎么写啊?
Private Function fn(str As String = " ") as String
Private Function fn(【str As String = " "】) as String
都不行啊。怎么写才对?

解决方案 »

  1.   

    参数前面加上Optional 即可:
    Private Function fn(Optional str As String = " ") as String
      

  2.   

    Private sub do(Optional str As String = "str")
    private function do(Optional str As String = "str") as String函数的形参[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]
    可选的。表示参数不是必需的。如果使用了该选项,则 arglist 中的后续参数都必须是可选的,而且必须都使用 Optional 关键字声明。如果使用了 ParamArray,则任何参数都不能使用 Optional 声明。
      

  3.   

    另外VB.NET支持函数重载。
    直接写多个函数名相同,参数不同的函数即可。