我已经搜索并尝试了很多东西,但我并不完全满意。
在将旧项目从 VB.Net 转换为 C# 时,我发现这两种语言之间的行为非常不同,如果不处理,就会破坏 C# 中的逻辑。
考虑一个像这样的枚举:
public enum TestEnum
{
Val1 = 1,
Val2 = 2
}
我在 VB.Net 中有这段代码
// Will contain 1
txthMyHiddenField.Value = TestEnum1.Val1
并且
// Will contain ~/Something?var=1
Dim Url As String = "~/Something?var=" & TestEnum1.Val1
在 C# 中,这将有第一种情况,Val1
在第二种情况下,“~/Something?var= Val1
”
到目前为止,我可以在不重新设计大量代码的情况下提出的解决方案是到处做类似的事情:
= myEnum.ToString("d");
// Or
= ((int)myEnum).ToString();
// Or an extension.
我还考虑过创建一个枚举“类”,但随后我将不得不更改所有 switch 语句,这是一个更糟糕的解决方案。
我错过了什么吗?有没有更清洁的方法?