基本上,我有一个具有可选字典参数的函数.由于它是可选的,它需要一个默认值,我想将它设置为空字典而不是Nothing.我该怎么做?
在Java中,我只想这样做:
Collections.<K,V>emptyMap()
Run Code Online (Sandbox Code Playgroud)
我如何在VB.NET中进行等效操作?
(我使用的是.NET 3.5).
.NET中没有预装的空字典.要创建一个空字典,只需转到New Dictionary().
但是,我相信您不会被允许使用此可选参数的默认值,因为它无法在编译时计算并放入DefaultValueAttribute.相反,你需要重载函数:有一个带有字典参数的重载,有一个没有.后者只是如上所述新建一个空字典,并调用第一个重载.
无法将空字典指定为VB.Net中参数的默认值.VB.Net仅支持可以在MetaData中编码的值,并且创建Dictionary的新实例不是其中之一.
但你有一个选择是拥有一个默认为Nothing的可选值.在Nothing的情况下创建一个空字典.例如.
Public Sub SomeMethod(Optional ByVal map as Dictionary(Of Key,Value) = Nothing)
if map Is Nothing Then
map = new Dictionary(Of Key,Value)
ENd If
...
End Sub
Run Code Online (Sandbox Code Playgroud)