enum SameName { Value }
class Tester
{
void Method1() {
SameName SameName;
SameName test = SameName.Value;
}
void Method2() {
string SameName;
SameName test = SameName.Value;
}
}
在第一种方法中,编译器正确地判断 SameName.Value 指的是枚举。
在第二种方法中,编译器会感到困惑,并认为 SameName.Value 指的是字符串类的 Value 成员。由于不存在这样的成员,因此会出错。
在这种情况下,我可以做些什么来帮助编译器更加了解我的 SameName 枚举?有没有办法用 using 语句来做到这一点?
- 我无法在我的真实代码中重命名变量或枚举。
- 我正在创建一个包含许多枚举值的大型字典,我宁愿不在枚举的每个实例前面添加命名空间前缀。
更新:是的,我知道我不应该使用大写的局部变量。是的,我意识到这些是局部变量,而不是字段。是的,我意识到如果真正的代码看起来像这样,调试起来会很糟糕。我把上面写成一个简短的、人为的例子,显示了我在实际代码中遇到的问题。我很抱歉我没有明确表达我的意图。在实际代码中,类位于枚举命名空间中包含的命名空间中,而局部变量是基类中的属性。我试图删除所有无关的代码以使问题更容易被发现,并列出了我的要求以便为问题提供一点范围。