我的任务是将解决方案从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:
有人可以提供更多信息,说明导致此错误的原因以及如何纠正错误。谢谢。
答案 0 :(得分:6)
这意味着在C#中没有Case Is =
(VB中Select Case
的一部分)的等价物......除了当然确实存在。
你可以改写:
Case Is = 999
作为
case 999:
在C#中。
Case Is <
实际上没有相应的内容,你必须用if
重写它。
答案 1 :(得分:6)
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
。