5

cこの例では、オプションのパラメーターを空に設定する方法がわかりませんList(Of thing)

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

に設定cすることを検討しましnullたが、それは悪いことのようです。

4

2 に答える 2

9

できません。オプションの値は、コンパイル時の定数でなければなりません。代入できる唯一のコンパイル時定数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
于 2014-12-03T04:15:38.147 に答える