『スラスラわかるC#』第9章 読書メモ

スラスラわかるC# (Beginner’s Best Guide to Programmin)

ジェネリック

ジェネリックを使うことで、メソッドを任意の型に対応させることができる。

上記コードで、Tの部分には任意の型が入る。Max(1,2)ならint、Max(1.1, 2.1)ならdoubleで演算が行われる。whereで、Tの型にIComparebleを実装しているという制約を加えている。また、ジェネリックを使うと演算子を利用できなくなるため、比較にはIComparebleで実装が保証されているCompareメソッドを使用している。

ジェネリックなクラスは以下のように定義し、利用する。

defaultキーワード

default(Type)はTypeが数値型の場合は0、参照型の場合はnullを返す。

共変性と反変性

C#4.0以上では、ジェネリックの型のパラメータに共変性・反変性を持たせることができる。

正直言って、この本だけだと共変性と反変性はよく理解できなかった。MSDNのジェネリックの共変性と反変性の方が、コード例が豊富でわかりやすい。

共変性は指定された型と、その派生元の型を使用できること。反変性は、指定された型と、その派生型を使用できること。指定された型のみが使用できる場合は不変性という。

正直言って、まだちゃんと理解できているとはいいがたい。もう少し実例を通して学んでいきたい。

コメントを残す