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

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

MyEnum被声明在外面, Class1 因为我在这里和其他类中需要它

看起来不错,但是如果我稍后决定删除包含的文件Class1怎么办?

MyEnum声明会丢失!!

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

4

3 回答 3

27

最佳实践是为每个类、枚举或其他类型创建单独的文件。

我的枚举.cs

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

Class1.cs

namespace Foo
{
    public class Class1
    {
        public MyEnum MyProperty { get; set; }
    }
}
于 2013-01-06T21:23:27.543 回答
5

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

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

// Foo\MyEnum.cs
namespace Foo
{
    public enum MyEnum
    {
        High, Low
    }
}
于 2013-01-06T21:23:20.280 回答
1

根据我的经验,最好将显式值添加到字段中,以防您将它们作为整数存储在数据库中,因为更改顺序或添加/删除值可能会在运行时失败:

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

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

于 2015-10-05T07:19:01.947 回答