万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    インターフェイスで子のクラスのメソッドにて子のクラスの型で返り値にしたい C#

    ・IHoge.cs

    interface IHoge
    {
       void Bar ();
       T Fuga (); // <- だめ
    }
    

    これだとTの返り値が怒られる。objectとか色々試したがよくわからない。

    c# interface method generic return type」にて検索すると、
    URL: http://stackoverflow.com/questions/10147292/c-sharp-interface-specfying-a-generic-return-type
    の解答がまさにそれ!

    interface IHoge<T> // <- Tをつける
    {
       void Bar ();
       T Fuga ();
    }
    

    IHogeのインターフェイス名の右横にを付けた

    ちなみに、

    interface IHoge // <- Tを外す
    {
       void Bar ();
       T Fuga <T>(); // <- 型パラメータ付き
    }
    

    型パラメータ付きのメソッドならインターフェイス名の右横にを外してもOKだった。