C#数据类型转换
数据类型转换就是将一种类型的数据转换为另一种类型,在 C# 中有两种形式的类型转换方式,分别是隐式类型转换和显示类型转换,下面就来详细介绍一下。
隐式转换不需要我们编写额外的代码,下例中演示了如何使用隐式类型转换的方式将 int 类型的数据转换成 double 类型:
下面通过一个示例来演示一下显式类型转换:
【示例】使用上面提供的方法,将各种类型的数据转换为字符串类型:
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 位无符号整数类型 |
【示例】使用上面提供的方法,将各种类型的数据转换为字符串类型:
using 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
ICP备案:
公安联网备案: