微软正在将null转换为类型,我应该吗?

Jef*_*ddy 8 c#

我正在根据微软的会员资料开发一些自定义的身份验证代码.在查看配置文件功能时,我查看了System.Web.dll v4.0.30319中的ProfileBase类.有一些类级变量被声明为一个类型但随后被初始化为一个转换为该类型的空值.

例如,

private static Exception s_InitializeException = (Exception) null;
private static ProfileBase s_SingletonInstance = (ProfileBase) null;
private static Hashtable s_PropertiesForCompilation = (Hashtable) null;
Run Code Online (Sandbox Code Playgroud)

我通常不会初始化具有类级别范围的变量.我想知道这是我应该做的事情还是它的目的.

感谢任何启示.

Jak*_*cki 7

您可能正在查看反汇编代码.这个转换可能是由反汇编程序添加的,它在源代码中不存在.

您绝对不必在代码中进行此类转换.


Luk*_*uke 6

这没有意义; 我相信null永远null- 我当然不能想到基于C语言的任何例子.它可能是生成的代码,而不是像这样明确编写的代码.