C# Convert进行类型转换的用法(附带实例)
在 C# 程序中,可以使用“(类型说明符)表达式”进行强制类型转换。例如,使用这种方式实现将 long 型数据转换成 int 型数据:
那么,在遇到这种错误时,有没有一种方式能够向开发人员报告错误呢?
答案是肯定的。C# 中提供了 Convert 类,该类也可以进行显式类型转换,它的主要作用是将一个基本数据类型转换为另一个基本数据类型。Convert 类的常用方法及说明如下表所示。
例如,定义一个 double 类型的变量 x,并赋值为 198.99,使用 Convert 类将其显式转换为 int 类型,代码如下:
下面使用 Convert 类的 ToInt32() 对本节开始的两行代码进行修改,修改后的代码如下:
再次运行这两行代码,则会出现如下图所示的错误提示:

图 1 显式类型转换的错误提示
这样,开发人员即可根据图 1 中的错误提示对程序代码进行修改,避免程序出现逻辑错误。
long l = 3000000000; int i = (int)l;按照代码的本意,i 的值应该是 3000000000,但在运行这两行代码时,却发现 i 的值是 -1294967296,这主要是由于 int 类型的最大值为 2147483647,很明显,3000000000 要比 2147483647 大,所以在使用上面代码进行显式类型转换时,出现了与预期不符的结果,但是程序并没有报告错误。如果在实际开发中遇到这种情况,可能会引起大的 BUG。
那么,在遇到这种错误时,有没有一种方式能够向开发人员报告错误呢?
答案是肯定的。C# 中提供了 Convert 类,该类也可以进行显式类型转换,它的主要作用是将一个基本数据类型转换为另一个基本数据类型。Convert 类的常用方法及说明如下表所示。
方 法 | 说 明 |
---|---|
ToBoolean() | 将指定的值转换为等效的布尔值 |
ToByte() | 将指定的值转换为 8 位无符号整数 |
ToChar() | 将指定的值转换为 Unicode 字符 |
ToDateTime() | 将指定的值转换为 DateTime |
ToDecimal() | 将指定值转换为 Decimal 数字 |
ToDouble() | 将指定的值转换为双精度浮点数字 |
ToInt32() | 将指定的值转换为 32 位有符号整数 |
ToInt64() | 将指定的值转换为 64 位有符号整数 |
ToSByte() | 将指定的值转换为 8 位有符号整数 |
ToSingle() | 将指定的值转换为单精度浮点数字 |
ToString() | 将指定值转换为其等效的 String 表示形式 |
ToUInt32() | 将指定的值转换为 32 位无符号整数 |
ToUInt64() | 将指定的值转换为 64 位无符号整数 |
例如,定义一个 double 类型的变量 x,并赋值为 198.99,使用 Convert 类将其显式转换为 int 类型,代码如下:
double x = 198.99; //定义double类型变量并初始化 int y = Convert.ToInt32(x); //使用Convert类的方法进行显式类型转换
下面使用 Convert 类的 ToInt32() 对本节开始的两行代码进行修改,修改后的代码如下:
long l=3000000000; int i = Convert.ToInt32(l);
再次运行这两行代码,则会出现如下图所示的错误提示:

图 1 显式类型转换的错误提示
这样,开发人员即可根据图 1 中的错误提示对程序代码进行修改,避免程序出现逻辑错误。