在类之间编写共享枚举的最佳实践是什么?

时间:2013-01-06 21:21:46

标签: c# enums

namespace Foo
{
    public enum MyEnum
    {
        High, Low
    }

    public class Class1
    {
        public MyEnum MyProperty { get; set; }
    }
}

MyEnumClass1之外宣布 因为我需要它和其他类

似乎很好,但如果我稍后决定删除包含Class1的文件

,该怎么办?

MyEnum声明将丢失!!

在类之间编写共享枚举的最佳做法是什么?

3 个答案:

答案 0 :(得分:24)

最佳做法是为每个类,枚举或其他类型创建单独的文件。

MyEnum.cs

namespace Foo
{
    public enum MyEnum
    {
        High, 
        Low
    }
}

的Class1.cs

namespace Foo
{
    public class Class1
    {
        public MyEnum MyProperty { get; set; }
    }
}

答案 1 :(得分:5)

  

在类之间编写共享枚举的最佳做法是什么?

将每个枚举放在一个自己的文件中,名称与枚举相同。

// Foo\MyEnum.cs
namespace Foo
{
    public enum MyEnum
    {
        High, Low
    }
}

答案 2 :(得分:0)

根据我的经验,如果将字段存储在数据库中作为整数,也可以向字段添加显式值,因为更改顺序或在中间添加/删除值可能会在运行时失败:

namespace Foo
{
    public enum MyEnum
    {
        High = 1, 
        Low = 2
    }
}

另请注意,我从1开始意识到未初始化的变量不被视为正确的枚举值。另一个想法是添加None = 0值。