2012-10-24 485 views
0

我試圖將以下c#代碼轉換爲vb.net。 我看到問題是我對OrderByDescending()的參數的語法不熟悉C#行的正確VB.Net等價物是什麼?將C#行轉換爲VB.net

//C# code 
SelectedFolder.Search("ALL", true).OrderByDescending(_ => _.Date).ToList(); 

//VB.Net part which doesn't work 
For Each msg In SelectedFolder.Search("ALL", True).OrderByDescending(Function(_).[Date]).ToList() 

之前刪除下劃線後[日期]錯誤成了,

錯誤1標識符。

+3

「不行」是指什麼? – dtb

+0

更新了我的問題 – Yohannes

+6

下劃線是一個奇怪的變量名稱選擇 – Brad

回答

9

_字符是VB中的一個續行。嘗試將變量名更改爲更常見的東西,如x

For Each msg In SelectedFolder.Search("ALL", True).OrderByDescending(Function(x) x.[Date]).ToList() 
+0

我認爲「_」(空格後跟下劃線)是行連續標記,並且僅當它出現在行的最後時?序列「_」中線*不應引起任何問題。如果語法分析器在這方面被絆倒,我會期望語法錯誤,而不是參數類型不匹配錯誤。 – cdhowie

+6

@ cdhowie:來自MSDN「如果標識符以下劃線開頭,則它必須包含至少一個其他有效標識符字符,以便從續行消除歧義。」 http://msdn.microsoft.com/en-us/library/aa711644(v=vs.71).aspx –

+0

@ Meta-Knight有趣。我不知道自VB6以來這是否發生了變化,因爲我似乎記得在VB6中的這種工作。聳肩。 – cdhowie