假设我有一些类“Foo”,它有几个构造函数重载,如下所示:
Class Foo
Public Sub New(id as Integer)
' Do stuff here
End Sub
Public Sub New(fee as Fee)
' assume that Fee is some other type
End Sub
End Class
现在,假设有时我只是不关心 id 或 fee 的值,我只想调用第二个构造函数并传递一个空引用。在 C# 中,我可以通过以下方式毫无问题地做到这一点:
var foo = new Foo(null);
它按预期工作。与此等效的 VB 似乎是:
Dim foo as New Foo(Nothing)
虽然我知道从技术上讲,Nothing
等于default<T>
,所以没有直接的等价物。我要挂断的地方在这里:Nothing
在这种情况下,VB 编译器似乎无法推断应该是 Integer 还是 Foo,因此它会引发关于歧义的错误。有什么方法可以实现我想要的结果,或者这是语言的限制,我只需要编写第三个构造函数或声明一个虚拟Foo
变量,将其设置为Nothing
并将其传递给构造函数?