我正在将一些VB.NET代码转换为C#,因为我对它更熟悉,它可以帮助我更快地解决问题.但是,我遇到了这个代码,这不是VB.NET中的错误 – 但将其转换为C#会产生编译器错误.
VB.NET代码
Select Case name Case "FSTF" ..... Case "FSTF" ..... End Select
C#转换代码
switch(name) { case "FSTF": ....; break; case "FSTF": ....; break; }
错误是:
The Label ‘case “FSTF”:’ already occurs in this switch statement.
解决方法
从
documentation for Select…Case:
If
testexpression
matches anexpressionlist
clause in more than oneCase
clause,only the statements following the first match run.
所以这里第二种情况实际上是多余的.就个人而言,我更喜欢C#方法突出显示几乎肯定是一个未被注意的编程错误,而不是故意引入重复的案例……