日期:2014-05-16  浏览次数:21014 次

C#-数据类型

    在C#语言中,符合公共语言规范(CLS)的数据类型可以分为两类:值类型和引用类型。两者存在很大的区别,值类型表示的是实际数据,只是将值存放在内存中。值类型都存储在栈中。而引用类型数据都存储在堆中。

    1、值类型

    (1)整形

    

    (2)字符型

    在C#中,字符类型(char)采用了Unicode字符集,一个Unicode的标准字符长度为16位(两字节)。

    (3)浮点型

    C#提供了三种师叔类型:单精度类型(float)、双精度类型(double)和十进制小数类型(decimal)。

    

    系统默认的浮点数为double型,要声明float和decimal类型还需要在小数后面加上后缀F和M,如:2(代表system.double);2F(代表system.single);2M(代表system.decimal)。

    (4)布尔型

    C#中的bool类型对应于system.Boolean结构。可能的取值为True和False,占用内存长度为1字节/8位。(*不再有和其他数值的对应关系,不能认为0是FALSE,其他值是TRUE

    (5)枚举类型

    枚举类型是一种复合值类型,主要用于表示一组逻辑上相关联的项的组合,由关键字enmu来定义。

     enmu  Fruit  {apple,banana,pear,peach};

    Fruit f1;

    f1=Fruit.banana

    (6)结构类型

    结构体struct类是用户自定义的值类型数据类型。把一系列相关的信息组织成一个单一实体的过程,就是创建一个结构的过程。

    struct person

    {

        string m_name;  //姓名

        int m_age;          //年龄

        string m_sex;     //性别

    }


    2、引用类型

    引用类型包括类(class)、接口(interface)、委托(delegate)和数组(array)。

    (1)类(class)

    类是一组具有相同数据结构和相同操作的对象集合。创建类的实例必须使用关键字new来进行声明。

    类和结构之间的根本区别在于:结构是值类型,而类是引用类型。对于值类型,每个变量直接包含自身的所有数据,每创建一个变量,就在内存中开辟一块区域;而对于引用类型,每个变量只存储对目标存储数据的引用,每创建一个变量,就增加一个指向目标数据的指针。
    (2)接口(interface)
应用程序之间要相互调用,就必须事先达成一个协议,被调用的一方在协议中对自己所能提供的服务进行描述。在C#中,这个协议就是接口。接口定义中对方法的声明,既不包括访问限制修饰符,也不包括方法的执行代码。(*如果某个类继承了一个接口,那么它就要实现该接口所定义的服务。也就是实现接口中的方法。
    (3)委托(delegate)

    委托用语封装某个方法的调用过程。
    委托的使用过程分为3步:
1.定义      delegate void HelloDelega