2014-05-07 58 views
0

我测试此代码:为什么不能转换为字节回车

string s = "\r"; 
    byte b = Convert.ToByte(s); 
    Console.WriteLine(b); 
    Console.ReadLine(); 

和我有类型的异常:

FormatException 

为什么会发生?

+0

因为'\ r'不是一个数字......是你期待什么行为? –

+6

阅读[文档](http://msdn.microsoft.com/en-us/library/y57wwkzk%28v=vs.110%29.aspx):“转换**数字**的指定字符串表示形式” 。 – elgonzo

回答

6

Convert.ToByte()取一个数字的字符串表示形式(如“1”)并将其读入byte。如果你想获得的\r(13)的值:

Encoding.UTF8.GetBytes("\r")[0] 
3
var c = '\r'; //Change to a char 
var b = Convert.ToByte(s); 
Console.WriteLine(b); 
Console.ReadLine(); //Result 13 
+0

哎呀看起来像有人打赌我 –

+0

虽然不同的做法。有趣。 – GolezTrol

+1

简单得多:'var s ='\ r'; var b =(byte)s;' – elgonzo

相关问题