为什么null不写入输出窗口?

Rob*_*ang 1 c# null output

z包含NULL.为什么输出窗口不显示NULL?是因为NULL不是值吗?

int? x = null;
int? y = 1;
int? z = 0;
z = x + y;
Debug.WriteLine(z);
Run Code Online (Sandbox Code Playgroud)

输出窗口不显示null

nkr*_*nkr 7

当您查看参考源时Console.WriteLine(Object),您可以看到System.IO.TextWriter.WriteLine(Object)显式检查的.NET调用null然后将输出一个空行:

public virtual void WriteLine(Object value) {
    if (value==null) {
        WriteLine();
    }
    else {
        // Call WriteLine(value.ToString), not Write(Object), WriteLine().
        // This makes calls to WriteLine(Object) atomic.
        IFormattable f = value as IFormattable;
        if (f != null)
            WriteLine(f.ToString(null, FormatProvider));
        else
            WriteLine(value.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)

Debug.WriteLine(Object)行为方式相同,但有点复杂.它最终打电话System.Diagnostics.TraceListener.WriteLine(Object).