2014-05-07 86 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

相關問題