第13章:Generic
[基本]
- <T>:型パラメータと呼ぶ。使用時に型を入れられる。<int>や<String>など
- しかしどんな型でも入れられるようにしておくと、対応できない場合があるので、入れられる型に制約を設ける事が出来る。この型パラメータの制約はいくつか種類がある。
[利点]
- 従来もObject型で同様の機能を行えた。しかし明示的なキャストが必要である、実行時エラーとなってしまう、等のデメリットが有りGenericの方が優れている。
[型パラメータの制約]
基本クラス制約
例えばGetA()を内部で使うので、GetA()を持つClassAとその派生クラスしか型パラメータに入れさせたくない
Class GenericClass <T> where T : ClassA // ClassAとその派生しかTに入れられない
インターフェイス制約
Class GenericClass <T> where T : IInterface // IInterfaceそのものorその派生or実装したクラスのみ型パラメータに入れさせたくない
コンストラクター制約(new()制約):
引数無しコンストラクタを持つ事を必須としている。これを付けると、内部でコンストラクタが使える=インスタンス生成できる
Class GenericClass <T> where T : new() // 引数無しコンストラクタ必須とします
参照型制約
Class GenericClass <T> where T : Class // 参照型のみTに入れられます。(ex)Class
値型制約
Class GenericClass <T> where T : Struct // 値型のみTに入れられます。(ex)intやstruct
- 作者: ハーバート・シルト,エディフィストラーニング株式会社矢嶋聡
- 出版社/メーカー: 翔泳社
- 発売日: 2010/12/03
- メディア: 大型本
- 購入: 5人 クリック: 55回
- この商品を含むブログ (6件) を見る