gpt4 book ai didi

c# - 创建丰富枚举的想法

转载 作者:行者123 更新时间:2023-11-30 17:44:46 24 4
gpt4 key购买 nike

我为自己创建了几个具有相同结构的类——“丰富的枚举”。所以它立即表明它可以通过我将继承的另一个类以某种方式简化。

我编写了一个示例类来向您展示此类枚举包含的内容:

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”,但这些类都具有相同的结构。所以他们有:

  • 各种类型的一些公共(public)只读字段(可变数量)
  • 一个或多个构造器
  • 公共(public)静态只读实例
  • 一个特殊字段,用于在这些实例均不符合条件时返回值。例如,当我使用 MyEnum.Values.FirstOrDefault(...) 时,如果找不到任何内容,它将返回默认值
  • 一些方法

有没有一种方法可以创建一个这种结构的类,然后只继承它,从而使过程更简单,更不容易出错?

最佳答案

看来您正在重新发明轮子:Headspring.Enumeration .

因此,如果您的目标只是拥有这样一个“丰富”的枚举类,那么可以使用 Nuget 包;如果您的目标是自己编写...好吧,从现有技术中寻找灵感永远不会有坏处。

关于c# - 创建丰富枚举的想法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29062021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com