局部常量初始化为null引用

And*_*ill 8 c# string null const reference

我已经读过C#允许将局部常量初始化为空引用,例如:

const string MyString = null;
Run Code Online (Sandbox Code Playgroud)

这样做有什么意义吗?这会有什么用处?

Pop*_*lin 6

我的猜测是因为null 一个有效值,可以分配给引用类型和可空值类型.我看不出有任何理由禁止这样做.

可能存在一些非常有用的情况,例如多目标条件编译.IE您希望为一个平台定义一个常量,但由于缺少功能而将其定义为另一个平台的null.

例如,可能有用的用法:

#IF (SILVELIGHT)
    public const string DefaultName = null;
#ELSE
    public const string DefaultName = "Win7";
#ENDIF 
Run Code Online (Sandbox Code Playgroud)