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");
}

浙公网安备 33010602011771号