这个`if`语句会产生Null-Reference Exception吗?

Ken*_*n D 2 c# if-statement logical-operators nullreferenceexception

我认为我的观点很清楚,在任何情况下,这都会抛出空引用异常吗?即在尝试访问其Count属性时反对e.Result为null .

if (e.Result == null || e.Result.Count == 0)
    return;
Run Code Online (Sandbox Code Playgroud)

编辑:为了充分利用这个问题(对于后来的问题),我们如何防止异常发生,我们可以使用lock声明吗?怎么样?

Mar*_*lon 8

仅当方法不是线程安全时,该代码才会抛出NullReferenceException.这意味着,如果另一个线程决定e.Result在您的e.Result == null检查之后和e.Result.Count == 0检查之前的确切时刻巧合地分配null .

  • @marcind是的,但问题是关于`e.Result`不是'e`本身. (2认同)