2016-08-17 74 views
1

我正在將一些VB代碼轉換爲C#。我有這些2個語句與我目前正在寫在VBVB對應的等價C#代碼

Dim LineSeparator As Char = Convert.ToChar(10) 
     Dim DataSeparator As Char = Convert.ToChar(";") 

Watch窗口檢查值,可以看到這樣的事情

Name   Value Type   

LineSeparator ""c  Char 

DataSeparator ";"c Char 

我寫了類似的C#聲明

char LineSeparator = Convert.ToChar(10); 
char DataSeparator = Convert.ToChar(";"); 

但手錶顯示不同的結果。像這樣的東西

LineSeparator 10 '\n' char 


DataSeparator 59 ';' char 

我在這裏做什麼錯?我需要在參數周圍放置單引號嗎?

+5

沒有結果是正確的,它只是一個不同的方式來顯示C#和VB.NET之間的值 – Steve

+0

http://www.asciitable.com/ – Plutonix

+0

@Steve完美!它是在觀看窗口中打印出令我困惑的ASCII代碼:) – Apoorv

回答

1

否的結果是正確的,它是僅用於由所述調試窗口顯示C#和VB.NET

與代碼10的字符之間一定的恆定值的方式的差異是換行符(非可打印的),VB中的調試器在雙引號之間不顯示任何內容(但字符在那裏)。在C#調試器中,這些不可打印的字符由轉義前綴(\)表示,後面跟一個由其中一些字母定義的字母。

對於分號,問題在於VB.NET對單個字符和字符串使用相同的引號。因此他們添加了字母「c」來表明這是一個char值而不是一個字符串。相反,C#使用單引號圍繞字符常量