1

我正在使用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,因此只有当输入是数字而不是字符时转换才有效。

如何包含字符?

谢谢。

4

2 回答 2

5

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

只接受字符串中的数字。

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

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

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

于 2013-06-28T08:56:42.873 回答
1

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

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

TryParse 的优点是如果字符串无法转换为数字并仅返回 false 或 true,则不会引发异常,而 out 参数则尽可能填充转换后的值。

于 2013-06-28T08:55:19.623 回答