VB.NET null合并运算符?

时间:2011-07-22 16:00:44

标签: vb.net null-coalescing-operator

  

可能重复:
  Coalesce operator and Conditional operator in VB.NET
  Is there a VB.NET equivalent for C#'s ?? operator?

是否有与C#null合并运算符等效的内置VB.NET?

4 个答案:

答案 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)

根据此question,答案似乎是If()

答案 2 :(得分:-1)

没有。使用GetValueOrDefault;这就是为什么它在那里!

答案 3 :(得分:-1)

我不相信有一个内置的VB.Net等价物,但这里有一个答案:null coalesce operator in VB.Net(8)