可能重复:
Coalesce operator and Conditional operator in VB.NET
Is there a VB.NET equivalent for C#'s ?? operator?
是否有与C#null合并运算符等效的内置VB.NET?
答案 0 :(得分:90)
是的,只要你使用的是VB 9或更高版本(包含在Visual Studio 2008中)。
您可以使用If
operator重载的版本只接受两个参数:
Dim myVar? As Integer = Nothing
Console.WriteLine(If(myVar, 7))
VB.NET团队在博客文章中可以找到更多信息here。
(是的,这是一个运算符,即使它看起来像一个函数。它将编译为与C#中“正确”的空合并运算符相同的IL。)
示例强>
Dim b As Boolean?
Console.WriteLine("{0}.", If(b, "this is expected when b is nothing"))
'output: this is expected when b is nothing.
b = False
Console.WriteLine("{0}.", If(b, "this is unexpected when b is false"))
'output: False.
b = True
Console.WriteLine("{0}.", If(b, "this is unexpected when b is true"))
'output: True.
答案 1 :(得分:7)
答案 2 :(得分:-1)
没有。使用GetValueOrDefault
;这就是为什么它在那里!
答案 3 :(得分:-1)
我不相信有一个内置的VB.Net等价物,但这里有一个答案:null coalesce operator in VB.Net(8)