C#中的类型转换问题?

在C#中数据类型可分为四大类型:

  • 有符号整型变量:sbyte、short、int、long;
  • 无符号整型变量:byte、ushort、uint、ulong;
  • 浮点型(带小数点):float、double、decimal;
  • 特殊类型:bool、char、string;

类型转换:就是不同变量类型之间的相互转换。

隐式转换:不同变量间的自动转换

1、相同大类型之间的转换——小范围转大范围 (不能大范围转小范围):

  • 有符号型:sbyte->short->int->

  • 无符号型:byte->ushort->uint->ulong
  • 浮点型:float->double(decimal不能进行转换)
  • 特殊类型:之间不存在隐式转换

2、不同大类型之间的转换:

  • 无符号和有符号间的转换:有符号的变量是不能隐式转无符号的,无符号的变量是可以转有符号的,前提是范围一定要覆盖;
  • 浮点型和整形间的转换:float和double不能隐式的转换为decimal,但整形可以隐式的转换为decimal(所有整形->decimal);所有整形->float->double;
  • 特殊类型和其他类型间的转换: bool类型不可以和其他类型进行相互的隐式转换;其他类型不可以隐式转换为char类型,char类型可以隐式的转换为整形和浮点型;string类型不可以和其它类型进行相互的隐式转换。

隐式转换的规则:低精度(小范围)转高精度(大范围)

char->整形(无符号、有符号)->float->double

char->整形(有符号、无符号)->decimal

bool和string不参与隐式转换规则 

显示转换:手动处理,强制转换

括号强转:一般情况下将高精度类型转换为低精度类型(不会四舍五入)

  • 语法:变量类型  变量名=(变量类型)变量;
  • 注意:bool和string不能强转

Parse法:把字符串转换为对应的类型

  • 语法:变量类型 变量名=变量类型.Parse(“字符串”);
  • 注意:字符串必须能够转换成对应的类型,否则报错
  • 一般这样使用:int value=int.Parse(Console.ReadLine());

Convert法:更能准确地将各个类型之间进行相互转换(会四舍五入)

  • 语法:变量类型 变量名=Convert.To目标类型(变量或常量)
  • 注意:填写的变量或常量必须正确,否则出错

其它类型转string:拼接打印

  • 语法:string str=变量.toString();
  • 注意:当我们进行字符串拼接时,就会调用tostring转换为string

你可能感兴趣的:(#,C#笔记,c#,开发语言,后端)