|
分類:[C#]
こんにちは。皆様はじめまして。 現在オライリーのC#クックブック第3版を勉強しています。 そのなかで(レシピ2.4) List<int> numbers = new List<int>(); プロパティによってはIListにキャストしないと呼び出せないものがあるとかいてあり、 実際コーディングしたところそうでした。
(以下実例) ○ ((IList)numbers).IsReadOnly × numbers.IsReadOnly
そこで気になって、Listの定義を見たところ、確かにIsReadOnlyプロパティは宣言されていませんでした。 しかし、List<T>はIListインターフェイス継承しているため、 IListでプロパティとして宣言されたIsReadOnlyは実装されていないといけないのではないでしょうか?
実際自分でインターフェイスの継承を試してみたところ、プロパティを実装しないエラーとなりコンパイル通りません。 どうしてこのようなことがおこるのか不思議です。
よろしければどなたかご教授いただければと思います。 長文失礼しました。
|