【发布时间】:2021-03-03 13:26:59
【问题描述】:
如果之前问过我很抱歉......如果是这样,我没有找到它。
我正在阅读A Shortcut for c# null and Any() checks,我看到了接受的答案。我理解答案,尽管大多数人使用 x.Items?.Any() ??假的。
我的问题是:如何做到这一点是 VB.NET
我可以简单写一下吗
If x.Items?.Any() Then
或者我需要
If x.Items?.Any() = True Then
虽然 if (x.Items?.Any()) 不能在 C# 中编译,但它们都可以在 VB 中编译...但这并不总是意味着它们都是正确的 :-)
【问题讨论】:
-
如果 Items 可以为空,那么 Any() 将返回 bool?。所以应该是=True,避免null。
-
据我所知,这是因为 VB 自动转换 bool 而编译的?布尔值。如果这些值在运行时确实为 null,这显然会崩溃。但这会是空的吗?
-
其实在if情况下两者都不会崩溃。因为有确切的类型比较。如果 items 为 null,则 true 或 false 都不等于 null。
-
我什至无法在 .NET Fiddle 上进行测试:s dotnetfiddle.net/5K5GE5
-
选择编译器 Roslyn 3.8