c# – 如果条件可以为空

前端之家收集整理的这篇文章主要介绍了c# – 如果条件可以为空前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Nullable< T>有许多语法糖.像那些:
int? parsed to Nullable<int>

int? x = null
   if (x != null) // Parsed to if (x.HasValue)

x = 56; // Parsed to x.Value = 56;

和更多.

为什么条件与Nullable不起作用?

if (x)
{}

它得到Complier错误,说无法转换Nullable< bool>布尔.
为什么没有解析if(x.HasValue&& x.Value == true)或类似的东西?

这是Nullable< bool>最明显的用法.

@H_404_15@

解决方法

It’s the most obvIoUs usage for Nullable<bool>

你的“明显”行为导致许多不明显的行为.

如果

if(x)

当x为null时,被视为false,那么应该发生什么

if(!x)

?当x为null时,x也为null,因此也将被视为false!你不能用反转反转条件的行为似乎并不奇怪吗?

关于什么

if (x | !x)

当然应该总是如此,但如果x为null,则整个表达式为null,因此为false.

最好通过简单地将它们全部视为非法来避免这些不明显的情况. C#是“让用户明确表达他们的意思”语言.

我相信VB有你想要的行为.如果这是你喜欢的东西,你可以考虑切换到VB.

@H_404_15@ @H_404_15@ 原文链接:https://www.f2er.com/csharp/98486.html

猜你在找的C#相关文章