.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的问题,而不是简单地说它不能完成。