c# – 如果条件可以为空
发布时间:2020-12-15 18:25:26 所属栏目:百科 来源:网络整理
导读:Nullable T有许多语法糖.像那些: int? parsed to Nullableintint? x = null if (x != null) // Parsed to if (x.HasValue)x = 56; // Parsed to x.Value = 56; 和更多. 为什么条件与Nullable不起作用? if (x){} 它得到Complier错误,说无法转换Nullable boo
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>布尔. 这是Nullable< bool>最明显的用法. 解决方法
你的“明显”行为导致许多不明显的行为. 如果 if(x) 当x为null时,被视为false,那么应该发生什么 if(!x) ?当x为null时,x也为null,因此也将被视为false!你不能用反转反转条件的行为似乎并不奇怪吗? 关于什么 if (x | !x) 当然应该总是如此,但如果x为null,则整个表达式为null,因此为false. 最好通过简单地将它们全部视为非法来避免这些不明显的情况. C#是“让用户明确表达他们的意思”语言. 我相信VB有你想要的行为.如果这是你喜欢的东西,你可以考虑切换到VB. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |