Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Animal[] animals = new Giraffe[10]; — валидно по определению ковариации, но может привести к ошибке, когда в animals попробуем добавить, например, черепаху. По этой причине для дженериков решили избежать этой проблемы и поэтому ковариации для них нет, ну а для массивов не стали убирать из-за обратной совместимости.String[] stringArray = new String[1] { "str" };
Object[] objArray = stringArray;
objArray[0] = new Object();
String str = stringArray[0] // упс
Mono? А вы уверены, что когда-либо будет достигнута задача запуска абсолютно любой программы, написанной на С#?Реализация CLR полностью совместима, в BCL есть всё кроме WPF. Т. е. запускает любой код, который не использует WPF и не пытается стучаться через P/Invoke напрямую к Win32 API. Т. е. ограничения портируемости примерно такие же как и у C++. Вы же не ожидаете, что ваша программа на MFC запустится на Mac OS X? Или что проект, использующий JNI не придётся снабжать нативными версиями библиотек для каждой платформы?
Чем короче код, тем он непонятнее, и чем более явно всё прописано, тем понятнее.Дигидрогена монооксид.
C# — Еще один клон С++, весь «сахар» появился уже позже, а распространенность основывается на привязке к Windows
А есть ли причины использовать статически типизированный функциональный язык программирования?