Parse和TryParse是一对用来进行数据类型转换的方法,它们存在于各自的基础数据类型之中,它们都是静态方法,所以在使用时直接用类型进行限定。
使用格式
数据类型 变量 = 数据类型.Parse(字符串类型的值);
所以,这两个方法只能将string类型转换成基础数据类型。比如我们需要将一个字符串转换成float浮点数据。
string text = "12.85";
float float_result = float.Parse(text);
Console.WriteLine($"float_result = {float_result}");
输出结果
float_result = 12.85
Parse方法对字符串的要求极高,比如浮点数据后面可以带f或F,但是,将字符串“12.85f”或“12.85F”转换成float时,会提示错误:System.FormatException:“输入字符串的格式不正确。”
甚至超过要转换类型的范围,也会引发错误。比如,byte的范围是0-255,如果将字符串"256"转换成byte类型时,会引发下面的错误:System.OverflowException:“值对于无符号的字节太大或太小。”
所以,我们在用Parse方法时,务必确定给的原始字符串能转换成其它基础数据类型。下面的例子演示了部分字符串与基础数据类型的转换。
string text = "12.85";
float float_result = float.Parse(text);
double double_result = double.Parse(text);
byte byte_result = byte.Parse("255");
short short_result = short.Parse("32767");
int int_result = int.Parse("2147483647");
long long_result = long.Parse("9223372036854775807");
Console.WriteLine($"float_result = {float_result}");
Console.WriteLine($"double_result = {double_result}");
Console.WriteLine($"byte_result = {byte_result}");
Console.WriteLine($"short_result = {short_result}");
Console.WriteLine($"int_result = {int_result}");
Console.WriteLine($"long_result = {long_result}");
输出结果
float_result = 12.85
double_result = 12.85
byte_result = 255
short_result = 32767
int_result = 2147483647
long_result = 9223372036854775807
为了避免转换失败,C#提供了TryParse方法,即先判断该字符串是否可以转换成目标类型,如果能转换则使用它的转换结果。
TryParse方法会返回两个值。一个值由TryParse的返回类型决定,即bool型,为true表示执行转换成功,否则表示转换失败。另一值由out 方式返回,表示转换后的结果。关于out的用法,我们会在以后讲解。
观察下面的例子。
string source = "256";
bool result = byte.TryParse(source, out byte v);
if (result == true)
{
Console.WriteLine($"{source}字符串转换byte成功,v = {v}");
}
else
{
Console.WriteLine($"{source}字符串转换byte失败,v = {v}");
}
source = "255";
result = byte.TryParse(source, out v);
if (result == true)
{
Console.WriteLine($"{source}字符串转换byte成功,v = {v}");
}
else
{
Console.WriteLine($"{source}字符串转换byte失败,v = {v}");
}
输出结果
256字符串转换byte失败,v = 0
255字符串转换byte成功,v = 255
这次我们依然尝试将字符串“256”转换成byte类型,结果提示失败,但是结果依然有值,就是byte值类型的默认值0。而后我们将字符串"255"转换成byte类型,结果提示成功。所以在不确定的情况下,我们建议使用TryParse方法更为安全。
当前课程源码下载:(注明:本站所有源代码请按标题搜索)
文件名:044-Parse方法与TryParse方法.zip
链接:https://pan.baidu.com/s/1Bq2lX7cruUbklLwgjGggSw
提取码:byte
——重庆教主 2024年1月23日