- A+
所属分类:.NET技术
变量类型的转化:
转换原则 同类型的大的可以装小的,小类型的装大的就需要强制转换。
隐式转换:
同种类型的转换:
//有符号 long——>int——>short——>sbyte long l = 1; int i = 1; short s = 1; sbyte sb = 1; //隐式转换 int隐式转换成了long //可以用大范围 装小范围的 类型 (隐式转换) l = i; //不能够用小范围的类型去装在大范围的类型 //i = l; l = i; l = s; l = sb; i = s; s = sb; ulong ul = 1; uint ui = 1; ushort us = 1; byte b = 1; ul = ui; ul = us; ul = b; ui = us; ui = b; us = b; //浮点数 decimal double——>float decimal de = 1.1m; double d = 1.1; float f = 1.1f; //decimal这个类型 没有办法用隐式转换的形式 去存储 double和float //de = d; //de = f; //float 是可以隐式转换成 double d = f; //特殊类型 bool char string // 他们之间 不存在隐式转换 bool bo = true; char c = 'A'; string str = "123123"; //特殊类型 bool char string // 他们之间 不存在隐式转换
不同类型的转换:
char类型可以隐式转换成数值型,根据对应的ASCII码来进行转换。
无符号的无法隐式存储有符号的,而有符号的可以存储无符号的。
显示转换
-
括号强转(注意精度问题 范围问题)
//有符号类型 int i=1; short s=(short)i; //无符号类型 byte b=1; uint ui=(uint)b; //浮点数 float f=1.5f; double d=1.5; f=(float)d; //无符号和有符号 //要保证正数 注意范围 int ui2=1; int i2=1; ui2=(uint)i2; //浮点和整型 i2=(int)1.25f; //char和数值类型 i2='A'; char c=(char)i2;
-
Parse方法
//Parse转换 int i4=int.Parse("123"); float f4=float.Parse("12.3"); //注意类型和范围!
-
Convert法
int a=Convert.ToInt32("12"); a=Convert.ToInt32("1.35f");//会四舍五入 a=Convert.ToInt32(true);//转为1 false转为0
注意:在Convert转换中变量以Int做标准,例如 INT16 为int,ToSingle为float
ToDouble为double,ToBoolean为bool;
-
其它类型转换为string(调用ToString方式)
string str=true.ToString();
string str2=1.5f.ToString();