Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Резюме для программиста

08.09.21 09:17
Re: Резюме для программиста
 
alex445 свой человек
в ответ alex445 08.09.21 09:03, Последний раз изменено 08.09.21 09:18 (alex445)

Но что самое интересное, правильный ответ может зависеть от версии компилятора. Вот здесь Overloading (csharpindepth.com) Джон Скит пишет


The C# 3 compiler will pick the overload Foo(object x). The C# 4 compiler, when targeting .NET 3.5, will pick the same overload - because IEnumerable<T> isn't covariant in .NET 3.5. The C# 4 compiler, when targeting .NET 4, will pick the Foo(IEnumerable) overload, because the conversion to that is better than the conversion to object. This change occurs with no warnings of any kind.

Даже не вдаваясь в подробности, относительно какого примера это написано, уже понятно, что самый-самый правильный ответ на такие "каверзные задачки" - это сначало уточнение версии компилятора. А экзаменующий должен быть поражен вашими энциклопедическими знаниями - мол, надо же, чувак постоянно держит в голове не только всю "магию" наследования с кучей правил и оговорок, но ещё и для всех версий компилятора. Надо его брать - у нас тонны говнокода на разных версиях фреймворка, включая доисторические, которые никто не будет переводить на новые. А такой умник как раз для такой работы подойдёт.


Вывод: если знать слишком много, можно получить почётную работу по разгребанию застарелого дерьма со знанием различий версий компиляторов. Пока джуниоры будут говнокодить на новом, модном, современном. )))

 

Перейти на