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

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

MyEnum外部で宣言され Class1 ているため、ここと他のクラスで必要です

良さそうに思えますが、後で を含むファイルを削除することにした場合はどうなりますClass1か?

MyEnum宣言は失われます!!

クラス間で共有列挙型をコーディングするベスト プラクティスは何ですか?

4

3 に答える 3

27

ベスト プラクティスは、クラス、列挙型、またはその他の型ごとに個別のファイルを作成することです。

MyEnum.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 から開始することに注意してください。もう 1 つのアイデアは、None = 0 の値を追加することです。

于 2015-10-05T07:19:01.947 に答える