yohhoyの日記

技術的メモをしていきたい日記

C#でstrong typedefもどき

プログラミング言語C#でstrong typedef("強い"型の別名)っぽいものを自前で実装する方法。

C# feature request: strong typedefs | Microsoft Connectよりサンプルコード引用。この要求は "by design" でクローズされている。

struct EmployeeID {
  private readonly int value;
  public EmployeeID(int value) { this.value = value; }
  public static explicit operator EmployeeID(int value) { return new EmployeeID(value); }
  // GetHashCode and Equals overrides omitted
}

usingディレクティブでも "弱い" 型の別名を付ける事が出来るが、そのスコープは該当ファイルのみに限定される。

関連URL