我想知道比较两个不同枚举值的最佳方法。
例如:
例如:
public enum ExampleEnumA
{
ExampleValue
}
public enum ExampleEnumB
{
ExampleValue
}
if (ExampleEnumA.ExampleValue.ToString() == ExampleEnumB.ExampleValue.ToString())
{
}
比较字符串是可行的,但我知道这不是最有效和优雅的方式。有什么更好的方法吗?
编辑:
也许这是一个设计缺陷,但这是一个真实项目中的问题,而不是我对枚举的错误理解。它看起来像这样,没有时间重构整个方法。
public interface IProvider
{
Enum SectionType { get; }
}
public class FirstProvider : IProvider
{
public Enum SectionType
{
get { return ExampleEnumA.ExampleValue; }
}
}
public class SecondProvider : IProvider
{
public Enum SectionType
{
get { return ExampleEnumB.ExampleValue; }
}
}
public class Program
{
public void TmpMethod(Enum sectionType)
{
var provider = GetFromIoC...
if (provider.SectionType == sectionType)
{
//...
}
}
}