.NET中三种数据类型转换的区别:(type), type.Parse, Convert类
.NET为我们提供了三种数据类型类转换的方法,她们分别是:(typeName),此方法适合于类型,type.Parse, 此方法只适于类.NET中的数字类型,还有一种就是使用 Convert 类型来进行类型转换。
我看来看看这三种数据类型转换的区别,还是用程序来说明吧:
我看来看看这三种数据类型转换的区别,还是用程序来说明吧:
using System;
public class TypeCast
{
public static void Main( )
{
object obj1 = 1; // 由整数装箱成一个对象类型
object obj2 = "1"; // obj2 引用一个字符串对象
// 没有错误
int int1 = (int)obj1;
// 下面这一行引发 InvaildCastException 异常, 无法将 obj2 的值转换成整型
// 此时我们可以使用 Convert.ToInt32 方法来进行转换,在这里不能使用 int.Parse 方法
// 因为 int.Parse 方法只接受一个 string 类型的参数
int int2 = (int)obj2;
// 下面一行也将引发 InvaildCastException 的异常, 无法将 obj1 的值转换成 string 类型
// 在这里可以使用 Convert.ToString 方法或者使用 obj1.ToString 方法
string str1 = (string)obj1;
// 这一行是正确的
string str2 = (string)obj2;
}
}
public class TypeCast
{
public static void Main( )
{
object obj1 = 1; // 由整数装箱成一个对象类型
object obj2 = "1"; // obj2 引用一个字符串对象
// 没有错误
int int1 = (int)obj1;
// 下面这一行引发 InvaildCastException 异常, 无法将 obj2 的值转换成整型
// 此时我们可以使用 Convert.ToInt32 方法来进行转换,在这里不能使用 int.Parse 方法
// 因为 int.Parse 方法只接受一个 string 类型的参数
int int2 = (int)obj2;
// 下面一行也将引发 InvaildCastException 的异常, 无法将 obj1 的值转换成 string 类型
// 在这里可以使用 Convert.ToString 方法或者使用 obj1.ToString 方法
string str1 = (string)obj1;
// 这一行是正确的
string str2 = (string)obj2;
}
}
还有一种情况就是,当把数据转换成数字类型时,如果被转换的数据为 null, 使用 (typeName), 和 type.Parse 这两种方法都会出错, 而使用 Convert 方法会返回一个 0.