如何让一个自定义函数的参数可填,可不填?vb里很多自带的函数好像都可以这样。如何做到的?

解决方案 »

  1.   

    public function myfun(a as string,optional b as string)b  为 缺省参数关键字  optional
      

  2.   

    在参数之前加上关键字optional.注意在这之后的参数都应加上optional.sample:
    Public Function GetProfileSetting(strAppName As String, strSection As String, strKeyName As String, Optional varDefaultValue) As String
    被声明为 Optional 的参数必须是 Variant 类型。
      

  3.   

    被声明为 Optional 的参数必须是 Variant 类型。啊?  可以设定类型以及初始值吧看过这样一个语句public function fac(optional byval a as interger=7)as double
      

  4.   

    Private Function funtest(ByVal a As String, Optional ByVal blnT As Boolean = True, Optional B)End Function
      

  5.   

    有一种可以指定参数类型的, 一种不指定的
    指定:Optional ByVal blnT As Boolean = True, 表示如果该参数不选,则函数里认为是后面对应的值 如Optional ByVal intI As integer = 2不指定:Optional B ,在函数里可以通过ismissing(b)来判断该参数时候有值传入
      

  6.   

    补充:Optional参数(可选参数)必须放在后面,即先必选参数再可选参数
      

  7.   

    optional 可以定义其他类型啊
      

  8.   

    当然是optional 声明的参数了...
      

  9.   

    [Public | Private | Friend] [Static] Function name [(arglist)] [As type]
    [statements]
    [name = expression]
    [Exit Function] 其中的 arglist 参数的语法以及语法各个部分如下:[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]Optional为可选参数的关键字声明
      

  10.   

    还可以指定default的值
    public function myfun(a as string,optional b as string = "default")
      

  11.   

    查MCDN上有详细描述
    以下只是一部分描述:
    [Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]
    Optional 可选的。表示参数不是必需的。如果使用了该选项,则 arglist 中的后续参数都必须是可选的,而且必须都使用 Optional 关键字声明。如果使用了 ParamArray,则任何参数都不能使用 Optional 声明。