将可选的'List(Of t)'参数的默认值设置为空列表?

tem*_*ame 4 vb.net optional-parameters empty-list

在这个例子中,我无法弄清楚如何将可选参数c设置为空List(Of thing):

Sub abcd(a as something, b as something, optional c as List(Of thing) = ?? )
    ' *stuff*
End Sub
Run Code Online (Sandbox Code Playgroud)

我认为设置cnull,但是这似乎是一个坏事情.

Mar*_*zek 8

你不能.可选值必须是编译时常量.您可以分配的唯一编译时常量List(Of T)Nothing.

可以做的是使用省略List(Of T)参数的方法重载该方法.然后,此重载可以将空传递List(Of T)给原始方法:

Sub abcd(a as something, b as something)
    abcd(a, b, New List(Of T)())
End Sub

Sub abcd(a as something, b as something, c as list(of thing))
    doStuff()
End Sub
Run Code Online (Sandbox Code Playgroud)