Byte.Parse 方法重载中的其中两个是 Parse(String) 和 Parse(String, NumberStyles),而第一个是第二个的特例,相当于第二个的参数为Integer。
这个NumberStyles的意思就是,要转换的String在转换过程中被认为是什么格式(例如十进制还是十六进制的字符串等等)。
举例说明
public class test
{
public static void Main()
{
//string stringToConvert = " 162";
string stringToConvert = " f2";
byte byteValue;
try
{
//byteValue = Byte.Parse(stringToConvert);//这里参数是162没有问题,因为162此时被认为是十进制,转换结果为162,在 byte的范围之内;但是,如果参数是f2,就会出现错误,因为十进制是不包含字母的
byteValue = Byte.Parse(stringToConvert, System.Globalization.NumberStyles.HexNumber);//这里f2是没问题的,因为十六进制里面可以包含f,而且结果也在255之内;但是如果参数是162就有问题了,因为转换结果显然超过了255,这就不是byte类型了
Console.WriteLine("The byte value is {0}.", byteValue.ToString());
}
catch (System.OverflowException e)
{
Console.WriteLine("Exception: {0}", e.Message);
}
Console.Read();
}
}