c# - 通用枚举作为方法参数

标签 c# generics enums

给定一个构造函数

public MyObject(int id){
    ID = id;
}

还有两个枚举:

public enum MyEnum1{
    Something = 1,
    Anotherthing = 2
}

public enum MyEnum2{
    Dodo = 1,
    Moustache= 2
}

是否可以将通用枚举作为构造函数的参数传入?我正在寻找以下解决方案:

public MyObject(enum someEnum){
    ID = (int)someEnum;
}

所以你可以这样做:

var newObject = new MyObject(MyEnum1.Something);
var anotherObject = new MyObject(MyEnum2.Dodo);

最佳答案

另一种选择是:

public MyObject(Enum someEnum){
    ID = Convert.ToInt32(someEnum);
}

这样您就可以按照您的要求使用它,而不必在每次调用您的构造函数时都强制转换为 int:

var newObject = new MyObject(MyEnum1.Something);
var anotherObject = new MyObject(MyEnum2.Dodo);

关于c# - 通用枚举作为方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39392241/

相关文章:

c# - 真正的通用实现

c# - 以MVC形式动态添加元素

c# - WCF 中的动态对象不可能吗?

c# - 根据条件编辑 ListBoxItem

delphi - Delphi 中泛型类型的算术运算

generics - 使用带有泛型的 Dart 的 call() 方法

c# - 列表对象的垃圾收集

Python 枚举类成员

c++ - oaidl.h(319) : error C2057: expected constant expression

c++ - 试图传入另一个类的枚举