C#数据类型转换
更新时间:2022-12-27 作者:
数据类型转换就是将一种类型的数据转换为另一种类型,在 C# 中有两种形式的类型转换方式,分别是隐式类型转换和显示类型转换,下面就来详细介绍一下。
1、隐式类型转换
隐式类型转换是由 C# 以类型安全的方式执行的,转换的过程中不会导致数据丢失,例如从较小的整数类型(例如 int)转换到较大的整数类型(例如 long),从派生类转换为基类。
隐式转换不需要我们编写额外的代码,下例中演示了如何使用隐式类型转换的方式将 int 类型的数据转换成 double 类型:
int a = 10;
double b = a;
提示:一种数据类型(类型 A),只要其取值范围完全包含在另一种数据类型(类型 B)的取值范围内,那么类型 A 就可以隐式转换为类型 B。基于这一特性,C# 的隐式类型转换不会导致数据丢失。
2、显式类型转换
显式类型转换也叫强制类型转换,这种转换需要使用(type)value
的形式或者预定义函数显式的完成,显式转换需要用户明确的指定要转换的类型,而且在转换的过程中可能会造成数据丢失,例如将 double 类型转换为 int 类型。
下面通过一个示例来演示一下显式类型转换:
using System; namespace c.biancheng.net{ class ExplicitConversion { static void Main(string[] args) { double d = 5673.74; int i; // 将 double 类型转换为 int i = (int)d; Console.WriteLine("转换前{0},转换后{1}", d, i); Console.ReadKey(); } } }
编译并执行上述代码,运行结果如下:
转换前5673.74,转换后5673
C# 中还提供了一系列内置的类型转换方法,如下表所示:
方法 | 描述 |
---|---|
ToBoolean | 将类型转换为布尔型 |
ToByte | 将类型转换为字节类型 |
ToChar | 将类型转换为单个 Unicode 字符类型 |
ToDateTime | 将类型(整数或字符串类型)转换为日期时间的结构 |
ToDecimal | 将浮点型或整数类型转换为十进制类型 |
ToDouble | 将类型转换为双精度浮点型 |
ToInt16 | 将类型转换为 16 位整数类型 |
ToInt32 | 将类型转换为 32 位整数类型 |
ToInt64 | 将类型转换为 64 位整数类型 |
ToSbyte | 将类型转换为有符号字节类型 |
ToSingle | 将类型转换为小浮点数类型 |
ToString | 将类型转换为字符串类型 |
ToType | 将类型转换为指定类型 |
ToUInt16 | 将类型转换为 16 位无符号整数类型 |
ToUInt32 | 将类型转换为 32 位无符号整数类型 |
ToUInt64 | 将类型转换为 64 位无符号整数类型 |
【示例】使用上面提供的方法,将各种类型的数据转换为字符串类型:
sing System; namespace c.biancheng.net{ class StringConversion { static void Main(string[] args) { int i = 75; float f = 53.005; double d = 2345.7652; bool b = true; Console.WriteLine(i.ToString()); Console.WriteLine(f.ToString()); Console.WriteLine(d.ToString()); Console.WriteLine(b.ToString()); Console.ReadKey(); } } }
编译并执行上述代码,运行结果如下:
75
53.005
2345.7652
True