【发布时间】:2015-03-15 14:56:08
【问题描述】:
我为自己创建了几个具有相同结构的类 - “丰富的枚举”。所以它立即表明它可以通过我将继承的另一个类以某种方式简化。
我编写了一个示例类来向您展示这样的枚举包含什么:
class RichEnum
{
// ???
}
class MyEnum : RichEnum
{
// FIELDS AND CONSTRUCTOR(S)
public readonly string A;
public readonly int B;
public readonly Object C;
public MyEnum(string A, int B, Object C)
{
this.A = A;
this.B = B;
this.C = C;
}
// STATIC INSTANCES
public static readonly MyEnum Example1 = new MyEnum("string1", 1, "object1");
public static readonly MyEnum Example2 = new MyEnum("string2", 2, "object2");
public static readonly MyEnum Example3 = new MyEnum("string3", 3, "object3");
// SPECIAL INSTANCE
public static readonly MyEnum Default = new MyEnum("default", 0, "default");
// SPECIAL OBJECT FOR ITERATING OVER STATIC INSTANCES
public static readonly MyEnum[] Values = { Example1, Example2, Example3 };
// METHODS
public int GetSomeNumber()
{
return B + 10;
}
}
我有很多不同的“MyEnums”,但这些类都具有相同的结构。所以他们有:
- 各种类型的一些公共只读字段(变量数)
- 一个或多个构造函数
- 公共静态只读实例
- 如果这些实例都不能匹配条件,则用于返回值的特殊字段。例如,当我使用 MyEnum.Values.FirstOrDefault(...) 时,找不到任何内容时会返回默认值
- 一些方法
有没有办法创建一个这种结构的类,然后从它继承,从而使过程更简化,更不容易出错?
【问题讨论】:
-
您可以尝试为您的“各种类型”创建一个具有多个类型参数的泛型类。