VB.NET空合并运算符?
可能重复:
在VB.NET中合并运算符和条件运算符
是否有一个VB.NET等价于C#的? 运营商?
是否有一个内置的VB.NET等价于C#null合并运算符?
是的,只要您使用VB 9或更高版本(包含在Visual Studio 2008中)就可以了。
您可以使用If
运算符的版本重载只接受两个参数:
Dim myVar? As Integer = Nothing Console.WriteLine(If(myVar, 7))
更多信息可以在VB.NET团队的博客文章中find。
(是的,这是一个运算符 ,即使它看起来像一个函数,它将会被编译成与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.
根据这个问题 ,似乎答案是If()
GetValueOrDefault
使用GetValueOrDefault
; 这就是为什么它在那里!
我不相信有一个内置的VB.Net等价物,但这里有一个答案: 在VB.Net中的空合并运算符(8)