我正在将 vb.net 转换为 c# 2010 作为我的工作,并且我拥有的自动工具都不能完全成功。在特殊的例子中,这种情况:
'searchString is a string paramter from a long method
Select Case searchString
Case "paid"
'Do something long here
Case "oaaaaa" To "ozzzzzz", "maaaaaa" To "mzzzzzz"
'Do other long code
Case Else
'other long code
End Select
在此之前我主要是 java 开发人员,所以不太擅长使用 c#,也不擅长使用 vb.net。我不明白“oaaaa to ....”部分,并且这部分没有转换。你能给我指出正确的位置来找到它的 C# 版本吗?
请您参考如下方法:
C# 中没有直接的等效项,但您可以使用以下代码轻松实现相同的语义(使用更具可读性的代码!):
if(searchString == "paid") {
// do something here
}
else if(
searchString.IsInRange("oaaaaa", "ozzzzzz") ||
searchString.IsInRange("maaaaa", "mzzzzzz")
) {
// do other long code
}
else {
// other long code
}
public static class StringExtensions {
public static bool IsInRange(this string s, string lower, string upper) {
if(String.Compare(lower, upper) > 0) {
throw new InvalidOperationException();
}
return String.Compare(s, lower) >= 0 && String.Compare(s, upper) <= 0
}