在一个 Form 类中声明一个私有的整型变量,并且不赋值,如:public class Form1 : System.Windows.Forms.Form
{
private int i;
......
......
}可是只要程序一运行,没有赋值的 i 就会有一个值"0",并且使用这个变量 i 不会报错。
为什么 i 声明后不用初始化就可以使用?

解决方案 »

  1.   

    C#中的变量从宏观角度看可以分成两类,一类是引用类型的,一类是值类型的,这一点从C#提供的装箱和拆箱功能中你会体会的更深一些,
    象整形,布尔形,字符型这些原型的数据类型都是值类型,即不是用类来定义的数据类型一般都是值类型,他们是可以直接使用的,因为他们在定义的时候系统会给出默认的值来,
    一般用类来声明的变量全部是引用类型,包括系统提供的类和你自己定义的类。引用类型相当于C中的指针一些,要想使用必须实例,否则就会出现问题的。即使是null值也要给它赋上一个。
      

  2.   

    C#里面的基本数据类型都是有缺省值的,带符号的整型int缺省值是0
      

  3.   

    对于C#而言,所有的内置数据类型都是从object类派生过来的,所有的类型都是基于一个公共的基类。所以,你可以认为int就是一个类,而int i;就是声明了一个类实例,对于一个类实例来说,其值是确定的 ^_^
      

  4.   

    你声明的是类成员变量,在没有赋值时采用默认值。
    比如int 类型为0,引用类型为null。如果声明局部变量,局部变量在被访问前必须附初值。