Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何声明包含元素的可选ArrayList。。。。?_.net_Vb.net_Arraylist_Optional Parameters - Fatal编程技术网

.net 如何声明包含元素的可选ArrayList。。。。?

.net 如何声明包含元素的可选ArrayList。。。。?,.net,vb.net,arraylist,optional-parameters,.net,Vb.net,Arraylist,Optional Parameters,我有一个像 Public Shared Function myfunction(Byval myvar as string, Optional ByVal myarray As ArrayList = Nothing) As String 但是我想用默认值声明一个可选的arraylist。。。怎么做?你不能 默认参数值必须是编译时常量;不能将对象实例用作默认值(字符串除外) 相反,您可以检查它在函数中是否为空,如果是,则使用默认值

我有一个像

Public Shared Function myfunction(Byval myvar as string, 
                               Optional ByVal myarray As ArrayList = Nothing) As String
但是我想用默认值声明一个可选的arraylist。。。怎么做?

你不能

默认参数值必须是编译时常量;不能将对象实例用作默认值(字符串除外)

相反,您可以检查它在函数中是否为空,如果是,则使用默认值填充它。

您不能

默认参数值必须是编译时常量;不能将对象实例用作默认值(字符串除外)


相反,您可以检查它在函数中是否为Nothing,如果是,则使用默认值填充它。

您可以使用重载

Public Shared Function myfunction(ByVal myvar as String) As String
    Dim myArray as ArrayList = new ArrayList()
    '' populate here
    Return myFunction(myvar, myarray)
End Function

Public Shared Function myfunction(ByVal myvar as string, _
    ByVal myarray as ArrayList) As String

End Function

您可以使用重载

Public Shared Function myfunction(ByVal myvar as String) As String
    Dim myArray as ArrayList = new ArrayList()
    '' populate here
    Return myFunction(myvar, myarray)
End Function

Public Shared Function myfunction(ByVal myvar as string, _
    ByVal myarray as ArrayList) As String

End Function

@布拉德:不,你没有
ParamArray
不能用于提供一组非空的默认值。尽管如此,我不明白为什么mellamokb的答案不完全符合要求。@Chris:这正是我最后的意思,除了使用重载而不是可选参数。那么也不可能将字符串数组作为可选参数传递,因为它始终是一个对象,对吗?@Brad:不,你没有
ParamArray
不能用于提供一组非空的默认值。尽管如此,我不明白为什么mellamokb的答案不完全符合要求。@Chris:这正是我最后的意思,除了重载而不是可选参数。那么也不可能将字符串数组作为可选参数bc传递。它始终是一个对象,对吗?+1用于实际解决OP的问题,而不是简单地说它不能完成。+1用于实际解决OP的问题,而不是简单地说它不能完成。