想半天也不知如何说。
INT是值类型。
CLASS是引用类型。

解决方案 »

  1.   

    int不是从Object继承来的!:b —— 事实上只有*boxed valuetype*才是从Object继承来的。所以C#编译器不会为valuetype生成缺省的.ctor, 在构件valuetype的时候,CLR不一定会调用valuetype的.ctor,当然也就更不会调用到Object的.ctor了。我们当然不希望一定义valuetype立刻就把它box起来吧?但是CLR可以保证在堆栈/local创建的valuetype内容初始化为0,需要显示初始化只是语言的一致性要求/避免出错(也许逻辑有问题)而已。就算你定义的是reference type,一样要初始化的:
    Object o = null;
    Object o = new Object();