考虑以下
public enum E
{
A = 1,
B = 1
}
public string F(E input)
{
return input.ToString();
}
F(E.B); //returns "A"
现在我知道你不应该这样做((E)1).ToString(),因为它可以解决A或B(http://msdn.microsoft.com/en-us/library/16c1xs4z.aspx)。
但是当它是一个明确选择的值(例如B)时,为什么会ToString()表现得很奇怪(返回A)?
调试时可能会看到,input是否B可以在代码中获取所选字段?
编辑
这个问题与调试器如何知道传递给哪个值有关F(),而在代码中似乎无法检测到这一点?