C#でのテストはちょっとお休みして、今日はC#でタイプセーフEnumパターンの実現方法をいくつか紹介する。 C#には十分にタイプセーフなenumがあるが、それでも基本は数値型であり、switchやifによる分岐が必要になってしまう点はC言語やC++のenumと何ら変わらない。 ということで、C#でタイプセーフEnumパターンを実装することには意味がある。もちろん、C#本来のenumで十分な場合も多いので、使うか使わないかはの判断は必要だ。 まずは、C#のenumに対して全く利点のない単純なものから。 public sealed class Enum1 { private Enum1() {} public static readonly Enum1 Value1 = new Enum1(); public static readonly Enum1 Value2 = new Enum1()