这个实现是如何调用的,它是否“正确”
本文关键字:是否 正确 调用 实现 何调用 | 更新日期: 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