я читал об изменениях, которые принесет .NET4.5, и в этом сообщении в блоге я наткнулся на нечто, чего не знал и не понимал.
Говоря о реализации коллекций только для чтения, Иммо Ландвертговорит:
К сожалению, наша система типов не позволяет создавать ковариантные типы T, если только у нее нет методов, принимающих T в качестве входных данных. . Поэтому мы не можем добавить метод IndexOf в IReadOnlyList.Мы считаем, что это небольшая жертва по сравнению с отсутствием поддержки ковариации.
Судя по моему явно ограниченному пониманию, кажется, что он говорит, что для того, чтобы мы могли вызывать метод, который требует IReadOnlyList
путем передачи IReadOnlyList
, у нас не может быть метода IReadOnlyList
.
Я не понимаю, как система типов могла бы этому помешать. Кто-нибудь может объяснить?