タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

Phantom Typeに関するJHashimotoのブックマーク (1)

  • C# で Phantom Type もどき - present

    Phantom Type (幽霊型)っていうのを知った。 インスタンスの状態をメンバフィールドではなく型パラメータで持つことで、 状態チェックをコンパイル時に行えるテクニック。 なにそれ凄い。 型パラメータに指定するだけで、 インスタンス化したりメソッド呼んだりして実際に使わないから、 Phantom (幽霊) なんだそうな。 中二な名前嫌いじゃない。 C# で Phantom Type を実践できるか試してみた。 特定の状態でのみ呼べるメソッドを定義するのに拡張メソッドを使ったのと、 コンストラクタを internal にして拡張メソッドからは呼べるようにしたあたりに、 苦労の跡が見える。 アセンブリの外からはコンストラクタ呼べないから、まぁいいかな、と。 Scala だともっとスマートに書けるみたいだけど。 出来上がったのは Phantom Type もどきだな。 using Syst

    C# で Phantom Type もどき - present
    JHashimoto
    JHashimoto 2015/11/07
    "型パラメータに指定するだけで、 インスタンス化したりメソッド呼んだりして実際に使わないから、 Phantom (幽霊) なんだそうな。 "
  • 1