转换为byte会出现此错误:输入字符串格式不正确

时间:2013-06-28 08:53:28

标签: c# string char type-conversion byte

我正在使用convert.tobyte将字符串转换为字节。问题是如果数据是:

string data = "5";

byte b = Convert.tobyte(data);效果很好。

但是,如果

string data = "S"

byte b = Convert.tobyte(data);已经开始工作了!

ERROR : Input string was not in a correct format

有什么问题以及如何解决?

注意:我正在从textbox中提取值,因此仅当输入为数字而非字符时,转换才有效。

如何包含角色?

感谢。

2 个答案:

答案 0 :(得分:5)

这正是Convert.ToByte方法的工作方式http://msdn.microsoft.com/en-us/library/y57wwkzk.aspx

只接受字符串中的数字。

你的意思是将字符串转换为字节数组吗?如果是这样,请使用:

byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(yourString);

对于仅包含ASCII字符的字符串,数组的大小将等于字符串的长度,并且数组中的每个字节都将是字符的ord值。如果string包含多字节字符,则数组的大小将大于string的长度。

答案 1 :(得分:1)

如果您不确定字符串类型的变量是否可以正确转换为数字,则需要使用TryParse方法系列,例如Byte.TryParse方法

string data = "S";
byte b;
if(byte.TryParse(data, out b))
   Console.Writeline("Worked: " + b.ToString());

如果字符串无法转换为数字并且只返回false或true,则tryParse的优点是不会抛出异常,如果可能的话,out参数将使用转换后的值填充。