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
它是參考比較,當我使用==
它意味着價值比較。如何比較字符串與枚舉在C#
是否有更好的代碼,而不是將枚舉值轉換爲ToString()
進行比較?因爲它破壞了值類型枚舉的目的,並且ToString()
上的枚舉也被棄用了?
你怎麼會在比較字符串枚舉值?有沒有辦法完全避免這種情況? – dlev 2012-07-16 16:51:35
試圖比較枚舉與字符串是一個壞主意。 – 2012-07-16 17:45:33