从VB转换为C#

时间:2013-12-23 13:45:14

标签: c# .net vb.net converter sharpdevelop

我的任务是将解决方案从VB转换为C#。有22个项目和数百个课程,所以我决定研究转换器。我最终选择了SharpDevelop,这是一个带有转换器的IDE。我在每个项目上运行它,并且有很多错误需要修复,但是我应该能够通过它们并希望能够解决它们。我遇到的主要问题是摘要日志。我有数百行不同的课程阅读:

-- line 0 col 0: Case labels with binary operators are unsupported : Equality
-- line 0 col 0: Case labels with binary operators are unsupported : Equality
-- line 0 col 0: Case labels with binary operators are unsupported : Equality
-- line 0 col 0: Case labels with binary operators are unsupported : Equality
-- line 0 col 0: Case labels with binary operators are unsupported : Equality

我看了这个,但是我没有找到一个很好的解释它的真正意义或如何纠正它。我发现的大部分内容都是注释代码,如:

// ERROR: Case labels with binary operators are unsupported : LessThan

40:

有人可以提供更多信息,说明导致此错误的原因以及如何纠正错误。谢谢。

2 个答案:

答案 0 :(得分:6)

这意味着在C#中没有Case Is =(VB中Select Case的一部分)的等价物......除了当然确实存在。

你可以改写:

Case Is = 999

作为

case 999:

在C#中。

Case Is <实际上没有相应的内容,你必须用if重写它。

答案 1 :(得分:6)

VB.NET中的

Select语法比C#语言复杂得多,你无需做任何事情,所以你必须将Select语句重写为if / {{1 }}:

else

你必须改写为:

Select myVariable
    Case 1
        ' Do #1 
    Case 2, 3
        ' Do #1
    Case Is < anotherValue
        ' Do #3
End Select

一般情况下,使用C#if (myVariable == 1) ; // #1 else if (myVariable == 2 || myVariable == 3) ; // #2 else if (myVariable < anotherValue) ; // #3 ,你只能测试相等性(这是你得到的警告),所以对于其他任何事情,你必须回到普通switch