読者です 読者をやめる 読者になる 読者になる

【C#】列挙型の項目数取得(その2)

C#

1年前に同じようなこと書きましたが
【C#】列挙型の項目数取得 - 浮遊島

今回はジェネリッククラスでstatic変数を持つバージョンの実装です
メリット:1回目だけ計算して、2回目以降のアクセスが早くなります

using System;
public class EnumSize<T> where T : struct, IConvertible
{
    public static int Count {get;} = Enum.GetValues(typeof(T)).Length;
}
// Enum定義
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
// 使い方
EnumSize<Days>.Count; // Count:7