Pull to refresh

Comments 9

UFO just landed and posted this here
Вот чем меня раздражает C#, так это огромным количеством неявных вызовов. Серьёзно, в мало-мальски крупном проекте разобраться, что и в каком порядке вызывается (просто чтоб понять алгоритм работы), практически невозможно без запуска отладчика.
Потому что там везде идёт оверюз композиции, причём в рантайме. И кругом тонны мелких методов, которые вызывают и перевызывают друг друга весьма неочевидным образом, пока голова кругом не пойдёт.
C# код приятно писать, но это write-only код. Читать и разбираться в нём по-настоящему тяжко, если приложение хоть немного сложнее Hello World.
Вы, наверное, путаете C# с каким-то другим языком программирования. Write-only — это регулярные выражения, в худшем случае Perl, но никак не C#.

регулярные выражения — намного легче читать, чем state-машину написанную на switch/case.
Лучше регулярок для обработки строк пока ничего лучше не придумали.

Наверное, это дело вкуса. Ничего не имею против обработки строк регулярками, но на самом деле сложные выражения (с бэктрегингом и т. п.) читать и понимать лично для меня сложнее, чем код на C#.
UFO just landed and posted this here
UFO just landed and posted this here
Не рассказали, чем, собственно, отличается
MathDelegate mathDelegate = Add;

от
MathDelegate mathDelegate = new MathDelegate(Add);


И было бы круто привести список встроенных делегатов: Action, Func, Predicate, EventHandler и что там ещё есть.
Не рассказали, чем, собственно, отличается
MathDelegate mathDelegate = Add;

от
MathDelegate mathDelegate = new MathDelegate(Add);

Если не ошибаюсь, то это синтаксический сахар. Компилятор первый пример кода превращает во второй при компиляции.
Sign up to leave a comment.