none
ジェネリックの書き方を教えてください。 RRS feed

  • 質問

  • ジェネリックの勉強中していますが応用ができなくて書き方が分からないので
    教えてください。

    基クラスにSortedListがあり、そのクラスを継承したクラスによって
    SortedListに追加するオブジェクトを変えたいのですが、
    どのような記述になるのでしょうか。

    class MyClass
    {
    //これだとPersonクラス専用のSortedListになるということでしょうか?
    SortedList<Person> list = new SortedList();
    }

    class Employee : MyClass
    {
    //listにはPersonクラスを追加していきたい
    }

    class PartnerCompany : MyClass
    {
    //listにはCompanyクラスを追加していきたい
    }

    class Person
    {
    }

    class Company
    {
    }

    もし根本的にもっとよい実装方法などありましたら教えてください。
    2007年2月2日 6:09

すべての返信

  • class MyClass<T>
    {
    protected SortedList<Keyの型,T> list = new SortedList<Keyの型,T>();
    }

    class Employee : MyClass<Person>
    {
    //listにはPersonクラスを追加していきたい
    }

    class PartnerCompany : MyClass<Company>
    {
    //listにはCompanyクラスを追加していきたい
    }

    2007年2月2日 10:06
  •  えムナウ さんからの引用
    class MyClass<T>
    {
    protected SortedList<T> list = new SortedList<T>();
    }

    class Employee : MyClass<Person>
    {
    //listにはPersonクラスを追加していきたい
    }

    class PartnerCompany : MyClass<Company>
    {
    //listにはCompanyクラスを追加していきたい
    }

    SortedList ジェネリック クラス
    SortedList<TKey,TValue>ですよ。

    2007年2月2日 10:39
  •  IIJIMAS さんからの引用
    SortedList ジェネリック クラス
    SortedList<TKey,TValue>ですよ。

    そうなんだけどSortedListをご指名なので分かっていると思って、

    元の質問にKeyの型がないので答えようがないし。
    protected SortedList<Keyの型,T> list = new SortedList<Keyの型,T>();
    とかしておきますか。

    2007年2月2日 12:04