我正在使用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
中提取值,因此仅当输入为数字而非字符时,转换才有效。
如何包含角色?
感谢。
答案 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参数将使用转换后的值填充。