string strName = "John";
public enum Name { John,Peter }
private void DoSomething(string myname)
{
case1:
if(myname.Equals(Name.John) //returns false
{
}
case2:
if(myname == Name.John) //compilation error
{
}
case3:
if(myname.Equals(Name.John.ToString()) //returns true (correct comparision)
{
}
}
当我使用.Equals
它时,它是参考比较,当我使用它时,==
它意味着值比较。
是否有更好的代码而不是将枚举值转换ToString()
为进行比较?因为它破坏了值类型枚举的目的,并且ToString()
不推荐使用枚举?