有默认值为何还要赋初始值

在C#编程中,值类型的默认值为0,为何在定义值类型的时候还会报错,必须要初始赋值?

**error CS0165: 使用了未赋值的局部变量“a”**

不是所有的值类型都会有一个默认值的
如果你是静态变量,或者public类型的变量,就会有初值
而如果是实例对象,并且不是public的,它就没有默认的初值

因为默认值不是自己想要的初始值

你的这个变量是不是用的var ??
你如果这样写 int a; a=2;就不会报错