【C#】列挙型(enum)が記述できるブロック

C#では、enumは名前空間内に記述するのが一般的ですが、クラスや構造体の内部にも記述することができます。これにより、特定のクラスや構造体に関連する列挙型をその内部に定義することができます。

以下に例を示します。

名前空間内に定義する場合

namespace MyNamespace
{
    public enum MyEnum
    {
        Value1,
        Value2,
        Value3
    }
    
    public class MyClass
    {
        // MyClassのメンバとしてMyEnumを使用することができます。
        public MyEnum EnumValue { get; set; }
    }
}

クラス内に定義する場合

namespace MyNamespace
{
    public class MyClass
    {
        public enum MyEnum
        {
            Value1,
            Value2,
            Value3
        }
        
        // MyClassのメンバとしてMyEnumを使用することができます。
        public MyEnum EnumValue { get; set; }
    }
}

構造体内に定義する場合

namespace MyNamespace
{
    public struct MyStruct
    {
        public enum MyEnum
        {
            Value1,
            Value2,
            Value3
        }
        
        // MyStructのメンバとしてMyEnumを使用することができます。
        public MyEnum EnumValue { get; set; }
    }
}

このように、enumは名前空間内だけでなく、クラスや構造体の内部にも定義することができます。特定のコンテキストに関連する列挙型を定義する場合には、クラスや構造体の内部に定義することが役立ちます。

C#

Posted by hidepon