簡體   English   中英

從C#到VB.NET的代碼轉換

[英]Code conversion from C# to VB.NET

大家好,我嘗試過將c#代碼轉換為vb,但是在此行中出現“期望表達”錯誤,這可能是錯誤,什么是正確的語法。 錯誤在第二行

Dim m As MenuItem = TryCast(sender, MenuItem)
audioDevice = (If(m.Index>0, filters.AudioInputDevices(m.Index-1), Nothing))

C#代碼

MenuItem m = sender as MenuItem;
audioDevice = ( m.Index>0 ? filters.AudioInputDevices[m.Index-1] : null );

您正在運行VB.Net 2008或更高版本嗎? 早期版本不支持If運算符。

由於非短路Iif函數將導致表達式的真值部分導致索引超出范圍,因此, If Then Else要支持2008之前的版本,則應使用If Then Else語句。

嘗試這個

Dim m As MenuItem = TryCast(sender, MenuItem)
audioDevice = (IIf(m.Index>0, filters.AudioInputDevices(m.Index-1), Nothing))

IIf函數MSDN文檔

由於不推薦使用IIf函數,因此請像這樣使用

If m.Index>0 Then
    audioDevice = filters.AudioInputDevices(m.Index-1)
  Else
    audioDevice = Nothing
  End If

樣品

希望能幫助到你

這可能是我找到的最好的工具! 當我從事開發工作已超過10年時,我發現了這一點(並且大多數在線示例都在C中,這只是金色!)..希望這對您有所幫助! (還有其他沒有偶然發現過這個“寶石”的人。。。最后,VB編碼人員可以更好地訪問在線示例。也許如果您再次使用此方法轉換代碼,則可能會解決您的麻煩。

http://converter.telerik.com/ (在轉換方面做得很棒)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM