这个实现是如何调用的,它是否“正确”

本文关键字:是否 正确 调用 实现 何调用 | 更新日期: 2023-09-27 18:37:24

我想到了一个带有变量的枚举。就像具有特定值的类的预制件对象一样。我想出了这个:

public class myClass {
string name;
int number;
public static myClass Version1 = new myClass("test",1);
public static myClass Version2 = new myClass("notest",2);
public myClass(string name, int number)
{
    this.name = name;
    this.number = number;
}
}

现在我可以从其他类访问预定义的对象。

它有一个特殊的名字吗?这是枚举的工作方式吗?有没有更好的方法?

我很好奇,希望得到帮助。

这个实现是如何调用的,它是否“正确”

在"有没有更好的方法可以做到这一点"的背景下,也许这是有帮助的......

我不知道你到底想完成什么,但 C# 内置了一些丰富的功能。 您应该研究以下内容,了解可能存在的其他模式,并将最佳模式应用于您的项目。

public enum Versions
{
    Test = 1,
    [Description("No Test!!")]
    NoTest = 2
}
// NOTE: this function taken from http://stackoverflow.com/questions/18625488/alternative-names-for-c-sharp-enum
public static class EnumExtensions
{
    public static string GetDescription(this Enum value)
    {
        FieldInfo fi = value.GetType().GetField(value.ToString());
        if (fi != null)
        {
            DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
            return (attributes.Length > 0) ? attributes[0].Description : value.ToString();
        }
        return value.ToString();
    }
}
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine($"Enum Test has name of {Enum.GetName(typeof(Versions), Versions.Test)} and a value of {(int)Versions.Test}");
        Console.WriteLine($"Enum NoTest has description of {EnumExtensions.GetDescription(Versions.NoTest)} and a value of {(int)Versions.NoTest}");
        return;

生产:

Enum Test has name of Test and a value of 1
Enum NoTest has description of No Test!! and a value of 2