c# - 如果第一个测试为空,则命令 if 语句忽略后续测试

标签 c# if-statement

我想说如果这个属性是 (Null OR Equals ""OR contains "ImageNotAvailable") 然后继续做一些事情。但是当我尝试使用下面的代码时,出现对​​象引用错误。我希望通过将 (Publisher.ThumbnailURL == null) 放在测试的开头,其他测试将被忽略,但我得到了上面的错误。

if ((Publisher.ThumbnailURL == null) | (Publisher.ThumbnailURL == "") | (Publisher.ThumbnailURL.Contains("ImageNotAvailable"))) 

我可以简单地将它们拆分为“If Else's”,但有没有一种方法可以指定如果第一个测试为空,则不要尝试找出 If 语句的其余部分,这将导致它出错

最佳答案

使用||而不是 | :

if ((Publisher.ThumbnailURL == null) || (Publisher.ThumbnailURL == "") || (Publisher.ThumbnailURL.Contains("ImageNotAvailable"))) 

||运营商

The conditional-OR operator (||) performs a logical-OR of its bool operands, but only evaluates its second operand if necessary.

请注意,您还可以使用 string.IsNullOrEmpty正如 Raphaël Althaus 评论的那样:

if (string.IsNullOrEmpty(Publisher.ThumbnailURL) || Publisher.ThumbnailURL.Contains("ImageNotAvailable")) 

关于c# - 如果第一个测试为空,则命令 if 语句忽略后续测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20639413/

相关文章:

c# - 使用 Entity Framework 手动输入 key

linux - : `if ls/etc/*release 1>/dev/null 2>&1` work? 请解释一下

if-statement - 下面的 tcl 代码会做什么?

c# - 将 IntPtr 指向的内存内容发送到 C# 上的 MemoryStream 变量

php - 如果=假,怎么办?

java - 使用 if 语句将结果发送回 jsp

javascript for循环内IF语句中的多个AND条件

c# - 如何查找具有特定属性的XML标记(在C#中)

c# - 开源 CMS(.Net 与 Java)

c# - WPF 自定义派生控件样式