私は .NET4.5 がもたらす変化について調べていましたが、このブログ投稿で、私が知らなかったり理解できなかったりすることに出くわしました。
読み取り専用コレクションの実装について話すとき、Immo Landwerthは次のように述べています。
残念ながら、私たちの型システムでは、T を入力として受け取るメソッドがない限り、T の型を共変にすることはできません。したがって、IndexOf メソッドを IReadOnlyList に追加することはできません。これは、共分散がサポートされていないことに比べれば小さな犠牲であると考えています。
IReadOnlyList<Shape>
私の明らかに限られた理解からすると、 a を渡すことによって を必要とするメソッドを呼び出せるようにするために、メソッドをIReadOnlyList<Circle>
持つことはできないと彼は言っているようIReadOnlyList<T>.IndexOf(T someShape)
です。
型システムがそれをどのように防ぐのかわかりません。誰か説明できますか?