【C#】Enum(列挙型)にメソッドを持たせる方法

拡張メソッドを使用します。

コード例

列挙型を使用して天気を日本語で表示するプログラムを示します。

列挙型

Weather.cs
public enum Weather
{
    Sunny, 
    Cloudy, 
    Rain, 
    Snow,
}

拡張メソッド

WeatherExtensions.cs
public static class WeatherExtensions
{
    public static string ToJapanese(this Weather weather)
    {
        return weather switch
        {
            Weather.Sunny => "晴れ",
            Weather.Cloudy => "曇り",
            Weather.Rain => "雨",
            Weather.Snow => "雪",
            _ => null,
        };
    }
}

使用例

Program.cs
class Program
{
    static void Main(string[] args)
    {
        var weather = Weather.Sunny;
        Console.WriteLine(weather.ToJapanese());
        weather = Weather.Cloudy;
        Console.WriteLine(weather.ToJapanese());
        weather = Weather.Rain;
        Console.WriteLine(weather.ToJapanese());
        weather = Weather.Snow;
        Console.WriteLine(weather.ToJapanese());
    }
}

出力

出力
晴れ
曇り
雨
雪

参考

拡張メソッド (C# プログラミング ガイド)

列挙型 (C# リファレンス)

コメントを残す

メールアドレスが公開されることはありません。