C#内置的数据类型及相关

2、数据类型(内置的数据类型【int,float,double等】 和 用户自定义的数据类型)
 
 内置的和用户自定的数据类型都有三种形式:值类型,引用类型和指针类型。
 
  值类型:存储实际的值。比如:如果用一个 int 值类型存储值8,那么存储的就是实际的8。
  
  引用类型:存储的是一个对象的地址,所谓对象就是一个类的实例。
  
  指针类型:指针类型是用来操作内存的。
  

3、整型

 有8中整型类型可以表示全部的数字即整数。
 
                      所占字节数
 
 sbyte (-128~127)                              byte(0~255)                                1
 short (-32768~32767)                          ushort(0~65525)                            2
 int   (-21474836478~2147483647)               uint(0~4294967295)                         4
 long                                          ulong                                      8
 
 
 
4、浮点类型

 有3中浮点类型(float,double,decimal)
     所占字节数           有效位数
 float    4                  7 位
 
 double              8                  15 -- 16 位
 
 decimal             12                 28 位
 
 
 
 当我们给浮点型赋值的时候,必须要在结尾加一个 f 或 F
 float myFloat =1.2f;
 
 当我们给双精度数赋值的时候 ,可以在结尾加个 d 或者 D,但这不是必须的。
 double myDoub =1.1;
 double myDouble = 1.3D;
 
 我们也可以采用科学的计数方法给浮点型或双精度型赋值
 float myfloat = 1.2e+3;         表示1.2*1000
 double mydouble =1.5e-5;        表示1.5*0.00001
 
 对于Decimal类型的,赋值的时候必须要在末尾加上m或M.
 decimal mydecimal =1.2344M;
 
5、 Char型

 char型所占的位数位2位。
 
6、布尔型
 布尔型表示布尔逻辑值true或者false ,所占字符为1位。
 

7、类型转换

 隐式转换:隐式转换只有在没有数据信息丢失的情况下发生。、

如: short myshort=56;
  int myint=myshort;    //因为short类型占2位,而int类型占4位 所以这时候的转化是可以发生的。
 
  但是如果我们写成这样
  int myint =576;
  short myshort = myint //这个时候因为会发生数据丢失,所以会出现错误。
 
   
 强制类型转化
 
 在使用强制类型转换的时候,我们要注意类型的值范围。
 
 如:
 
 short myshort= 17000;
 int myint = (int)myshort;//执行这个强制类型转化的时候没有问题,因为short的范围为:-32768~32767,而int的范围为:2147483648~2147483647,所以没有发生值超过范围的情况。
 myshort=(short)(myint*2);//但是执行这个强制类型的转化的时候,问题就发生了,因为myint*2=34000,它的值超过了short类型的值范围,所以得到的结果为:-31356
 
 为了避免这种情况的发生,我们可以使用checked运算符
 
 try
 {
  checked
  {
   myshort =(short)(myint*2);
  }
 } 
 catch
 {
  System.Console.WriteLine("Exception occurred");
 }

posted @ 2008-02-15 11:41  海底的鱼  阅读(743)  评论(0)    收藏  举报