首页 > 代码库 > C#类型转换 20140815
C#类型转换 20140815
一、类型转换
1.强制转换(显示转换)
A.变量=(需要转换的类型)变量--仅适合于同一类型内转换.
例:float a;
double b=3.14;
a=(float)b;
B.变量=Convert.To数据类型 (变量)--值类型转换.
PS:TO数据类型必须用".net数据类型"来表示.
例:float a;
double b=3.14;
a=Convert.ToSingle(b);
C.变量=数据类型.parse(变量)--"()"内只能为字符串类型,将字符串解析成相应值类型.
例:float a;
double b=3.14;
a=float.parse(b)
PS:只有"()"内字符串符合要转变变量的类型才可以运行,否则编辑时不提示错误,但无法运行.
例:string b="Hello";
int a=int.Parse(b)--因"Hello"无法转换为"int".
2.电脑自动转换(隐式转换)--计算器只能针对同一类型数据进行运算.
二、运算符
1.数学运算
共7种:1)+ 2)- 3)* 4)/ 5)% 6)++ 7)——
4)/ --整型与整型运算结果为整型.
例:int a=10;
int b=3;
Console.Writeline(a/b)--返回信息为"3".
5)%--取余,控制数据范围时需使用.
例:int a=2357;
int b=36;
Console.WriteLine(a/b)--返回信息值在0-35之间,如不需0值,可+1,,取值1-36之间.
6)++ 自增 7)—— 自减
A.一条语句中只有"++""——"运算时,变量前"++""——"与变量后"++""——"是一样的,无优先处理顺序.
例:int a=10;
a++;
Console.WriteLine(a);--返回信息为"11".
int a=10;
a——;
Console.WriteLine(a);--返回信息为"9".
B.一条语句中在除了"++""——"运算外还有其他运算时,变量前"++""——"运算中优先运算"++""——"数据;变量后"++""——"运算中最后运算"++""——"数据.
例:int a=10,b;
b=a++; --b=a,a=a+1.
Console.WriteLine(a);--11
Console.WriteLine(b);--10
例:int a=10,b;
b=++a; --a=a+1,b=a.
Console.WriteLine("a="+a); --a=11
Console.WriteLine("b="+b); --b=11
例:int a=10,b;
b=a++,a=b++;
Console.WriteLine("a="+a); --a=12
Console.WriteLine("b="+b); --b=12
例:int a=10,b;
b=++a,a=b++;
Console.WriteLine("a="+a); --a=12
Console.WriteLine("b="+b); --b=11
PS:"++""——"不论前后均仅针对于变量,"++""——"的前面只能是一个变量,不能是常量或公式.
2.关系运算
共6种:1)== 2)!= 3)> 4)< 5)>= 6)<=
1)== --判断
例:int a=3,b=4,c=5;
Console.WriteLine(a==b);--bool类型,表示a与b相等吗?成立吗?--返回信息为"false".
使用:可用于判断结果是否为预期.
例:Console.Write("请输入一个100以内的整数:");
string s=Console.ReadLine();
int num=Convert.ToInt32(s);
Console.WriteLine(num%7==0)--取余是否为0?是否为整数?--数值是否为7的倍数?
Console.WriteLine(num%10==7)--数值个位数是否为7?
Console.WriteLine(num/10==7)--数值十位数是否为7?
PS:所有关系运算符,返回信息都是bool型;表达成立--返回信息为True;表达不成立--返回信息为False.
3.逻辑运算
共3种:1)&& 2)|| 3)!
1)&& --逻辑与,表示并且.
A.True && True = True
B.False && True =False
C.False && False =False
例:int a=3,b=4,c=5;
Console.WriteLine(a>b&&b<c);--返回信息为"False".
例:int a=3,b=4,c=5;
Console.WriteLine(!(a>b)&&b<c);--返回信息为"True".
2)|| --逻辑或
A.True || True =True
B.False || True =True
C.False || False =False
PS:所有逻辑运算符,返回信息都是bool型;表达成立--返回信息为True;表达不成立--返回信息为False.
3)! --逻辑非,取反.
4.其他运算符
1)赋值运算符:=
2)复合运算符:=为赋值 A.+= B.—= C.*= D./= E.%=
例:int a=5;
a+=10; --a=a+10.
Console.WriteLine(a);--返回信息为"15".
3)条件运算符:A.? B.:
(表达式1)?(表达式2):(表达式3)
例:Console.WriteLine("请输入24小时制的时间:");
int h =Convert.ToInt32(Console.ReadLine());
string ap="";
ap=h>12?"PM":"AM"; --h大于12吗?成立就是"PM",不成立就是"AM".
h=h>12?h-12:h; --h大于12吗?成立就减去12,不成立就是h.
三、运算符的运算优先级
数学运算符高于关系运算符,关系运算符高于逻辑运算符.
1)数学运算符的运算优先级:"++""——"高于"*""/""%","*""/""%"高于"+""—".
2)逻辑运算符的运算优先级:"&&"高于"||".
PS:()是最为优先运算,其次是!;变量后"++"为最后运算,其次是=.