假设我有这门课程:
public class SiteMapEntry
{
public static enum ChangeFrequency
{
Always,
Hourly,
Daily,
Weekly,
Monthly,
Yearly,
Never
}
}
这个功能:
public class FooBar(SiteMapEntry.ChangeFrequency changeFreq)
{
}
这叫做:
string foobarNever = FooBar(SiteMapEntry.ChangeFrequency.Never);
在方法FooBar
中我需要做什么才能拥有string foobarNever == "never"
?
答案 0 :(得分:18)
changeFreq.ToString()将为您提供枚举值的字符串表示。
答案 1 :(得分:1)
string foobarNever =“never”:)
或者,你为什么不这样做:
if(FooBar(SiteMapEntry.ChangeFrequency.Never) == SiteMapEntry.ChangeFrequency.Never)
{}
答案 2 :(得分:1)
有多种与枚举互动的方式。为了获得最佳实践,请始终将枚举与已定义的类型进行比较:
if(changeFreq == ChangeFrequency.Never)
不
if(changeFreq.ToString() == "Never")
因为它更具描述性。如果需要将字符串值转换为枚举类型,请使用
try
{
convertedValue = (ChangeFrequency)Enum.Parse(typeof(ChangeFrequency), stringValue);
}
catch
{
convertedValue = ChangeFrequency.Always; // Whatever default you want
}
答案 3 :(得分:1)
用您的ENUM替换代码示例中的Your_ENUM_List
并运行此代码。
string Result = "";
Type Enum_Name= typeof( Your_ENUM_List );
int Enum_Number = 0;
Result = Enum.ToObject(Enum_Name, Enum_Number).ToString();