为什么这不会引发异常

Jor*_*rge 2 c#

这是一个简单的问题,但我怀疑看到下面的代码

public static String something;
    static void Main(string[] args)
    {
        try
        {
            if (something == "blah")
                System.Console.Write("ok");
        }
        catch (Exception)
        {

            throw;
        }

    }
Run Code Online (Sandbox Code Playgroud)

我知道这不会引发异常而是为什么?因为名称为变量的变量为null,当您比较时,您尝试使用null获取引用.有人可以向我解释原因吗?谢谢!

use*_*016 24

没有什么是错的,因为你不是想要取消引用 something.你得到它的价值,这是null.如果你试图取消引用它(即something.somemethod()),那么就会抛出异常.