从C#到VB.NET的代码转换

时间:2014-01-10 09:31:15

标签: c# vb.net 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#CODE

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

3 个答案:

答案 0 :(得分:4)

您运行的是VB.Net 2008或更高版本吗?早期版本不支持If运算符。

由于非短路Iif函数会导致表达式的真实部分导致索引超出范围,因此如果您需要之前的版本,则应使用If Then Else语句2008年获得支持。

答案 1 :(得分:1)

试试这个

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

IIf Function MSDN Documentation

由于不推荐使用IIf功能,请使用

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

<强> Sample

希望有所帮助

答案 2 :(得分:-1)

这可能是我找到的最好的工具!我已经成为一名开发人员超过10年,当我发现这一点时(并且大多数在线示例都在C中,这只是GOLDEN!)..希望这可以帮到你! (还有其他任何人都没有偶然发现这个'宝石'......最后VB编码器可以更好地访问在线示例...注意*这不是唯一的代码转换器,但它是迄今为止我用过的最好的代码转换器使用..也许如果你再次使用它转换代码,你的麻烦可能会被解决.......

http://converter.telerik.com/(在转换方面做得非常出色)