可能的重复: VB.NET 中的
Coalesce 运算符和条件运算符
是否有 C# 的 VB.NET 等效项?操作员?
是否有等效于 C# 空合并运算符的内置 VB.NET?
可能的重复: VB.NET 中的
Coalesce 运算符和条件运算符
是否有 C# 的 VB.NET 等效项?操作员?
是否有等效于 C# 空合并运算符的内置 VB.NET?
是的,只要您使用的是 VB 9 或更高版本(包含在 Visual Studio 2008 中)。
您可以使用重载的If
运算符版本只接受两个参数:
Dim myVar? As Integer = Nothing
Console.WriteLine(If(myVar, 7))
可以在 VB.NET 团队的博客文章中找到更多信息。
(是的,这是一个operator,尽管它看起来像一个函数。它将编译为与 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.
我不相信有一个内置的 VB.Net 等价物,但这里有一个答案:VB.Net(8) 中的空合并运算符
没有。使用GetValueOrDefault
;这就是它存在的原因!