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

wot*_*ney 1 c# if-statement

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

if ((Publisher.ThumbnailURL == null) | (Publisher.ThumbnailURL == "") | (Publisher.ThumbnailURL.Contains("ImageNotAvailable"))) 
Run Code Online (Sandbox Code Playgroud)

我可以简单地将它们拆分为"If Else's",但有没有办法指定如果第一个测试为null,请不要试图找出其余的If语句,这将导致它出错

Tim*_*ter 11

使用||而不是|:

if ((Publisher.ThumbnailURL == null) || (Publisher.ThumbnailURL == "") || (Publisher.ThumbnailURL.Contains("ImageNotAvailable"))) 
Run Code Online (Sandbox Code Playgroud)

|| 操作者

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

请注意,您也可以使用string.IsNullOrEmptyRaphaëlAlthaus评论:

if (string.IsNullOrEmpty(Publisher.ThumbnailURL) || Publisher.ThumbnailURL.Contains("ImageNotAvailable")) 
Run Code Online (Sandbox Code Playgroud)

  • 对于前两个测试,`string.IsNullOrEmpty`会很好. (3认同)