如果第一个测试为null,则命令if语句忽略后续测试

时间:2013-12-17 16:24:01

标签: 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”但是有没有办法指定如果第一个测试为null,请不要试图找出会导致错误的If语句的其余部分

2 个答案:

答案 0 :(得分:11)

使用||代替|

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

||操作者

  

条件OR运算符(||)执行其bool的逻辑或运算   操作数,但仅在必要时评估其第二个操作数

请注意,您也可以使用RaphaëlAlthaus评论的string.IsNullOrEmpty

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

答案 1 :(得分:3)

是的,使用||尽早评估表达式,使用String.IsNullOrEmpty会使语句更简短:

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