重新学习C# 之 数据类型(一)

来源:互联网 发布:路老膏方 诈骗让网络 编辑:程序博客网 时间:2024/06/07 02:11

C#中的数据类型分为两种:

  1. 值类型:直接存储其值,存储在内存的堆栈中(在C#中基本数据类型如bool、int、long等都是值类型)。
    *例:
    int x,y;
    x=20;
    y=x;
    说明:在内存中会有两个地方存储值20,一个x=20,y=20;修改x不会影响到y,同样
    修改y也不会影响到x.*
  2. 引用类型:存储对指的引用,存储在内存的托管堆中(大多数更复杂的C#数据类型,包括我门自己声明的类都是引用类型)。
    *例:假设定义了类Lingyang,Lingyang是一个引用类型,他有一个int成员val。
    Lingyang a,b;
    a=new Lingyang();
    b=a;
    b.val=50;//a.val的值也会变为50
    a.val=45;//b.val的值也会变为45
    说明:在内存中只会有一个Lingyang对象,a,b都指向包含该对象的内存位置。修
    改a会改变b,同样修改b也会影响a.*
  3. 若要把自己的类型定义为值类型,就应把他声明为一个结构。
  4. C#有15个预定义类型,其中13个是值类型。两个是引用类型(string和object)。
    4.1.值类型
    1) : 32位有符号的整形int,(-2^31~2^31-1)
    2) : 64位有符号的整形long,(-2^63~2^63-1)
    3) : 8位有符号的整形sbyte,(-128~127)
    4) : 16位有符号的整形short,(-32768~32767)
    5) : 8位无符号的整形byte,(0~255)
    6) : 16位无符号的整形ushort,(0~65535)
    7) : 32位无符号的整形uint,(0~2^32-1)
    8) : 64位无符号的整形ulong,(0~2^64-1)
    9) : 32位单精度浮点数float,共7位数字
    10) : 64为双精度浮点数double,共15/16位数字
    11) : 128位高精度十进制数表示法decimal,28位数
    12) : 表示true或false bool
    13) : 表示一个16位的单个字符 char
0 0