tgoop.com/extremecode/1214
Last Update:
Шизоидный автор на месте. Вообще рофлирую над кокнетчиками, там такие медиаманьки на архитекторах языка, что просто не описать словами.
Пока все как дегенераты носятся и очередной раз постят мемы с джаваскриптом по поводу его динамической типизации, в это же время никто из сишарпистов буквально не замечает бревно в собственном глазу.
Во-первых, тема с ковариантностью-инвариантностью существует как БАЗА, для языков со строгой типизацией. Без нее в принципе НЕВОЗМОЖНО писать это ваше ООП. Не понимать этого — зашквар.
Первая проблема, которая возникает при использовании этих инструментов — невозможно проверить такой код на наличие ошибок во время компиляции, если что-то может отьебнуть, оно обязательно отьебнет в рантайме. Вкусненько, правда?
Во-вторых, по поводу медиаманек на архитекторах, которые противоречат сами себе. Для обобщенных интерфейсов/делегатов сделали типа "безопасный" способ писать такой код. Вот ты впихнул кейворды in/out, значит кровью расписался и даешь себе полный отчет в том, что этот код может отьебнуть в рантайме.
Но при этом, в кокнете из коробки все массивы КОВАРИАНТНЫ, это значит, что ты без проблем можешь написать вот такой код, и компилятор его совершенно спокойно схавает:
object[] array = new string[3] { "ахахаха", "ситуация", "конечно забавная"};
array[0] = 15;
Более того, даже давно известно откуда растут корни такой биполярочки. Все массивы в Java реализованы точно также, поэтому чуваки решили перенести этот механизм один-в-один, чтобы джависты смогли осилить переход с жабы на шарп