首页 > 代码库 > 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:()是最为优先运算,其次是!;变量后"++"为最后运算,其次是=.