如何在c#中验证枚举类型



我有一个以Enum值作为参数的方法,但并非所有枚举都有效。我想做这样的事情

public void Method<T>(T type) where T : Enum, IValidEnum{}
public enum ValidEnum1 : IValidEnum{}
public enum ValidEnum2 : IValidEnum{}
public enum NotValidEnum{}
Method(ValidEnum1.Value) // ok
Method(ValidEnum2.Value) // ok
Method(NotValidEnum.Value) // Exeption

但是枚举不能使用继承。如有任何建议,请参考

您正在尝试根据来自多个不同枚举类型的值进行处理?我认为代码中定义的每个枚举类型都是该枚举用途的穷举不同集合。你不能在一个枚举中有相同的值两次,但你可以在两个不同的枚举中有相同的值,这就是打破你试图用继承来使用它们的方式。实际上没有继承任何东西,也没有实现任何规范。

也许你想做的事情的更多背景会有所帮助。这些预先存在的枚举你试图合并到新的应用程序逻辑吗?

相关内容

  • 没有找到相关文章

最新更新