Особенности инструкций call и callvirt, рассмотренные в предыдущей части, как правило, неинтересны разработчику на C#. Это детали реализации, про которые знать необязательно. Однако, в соответствии с законом Дырявых Абстракций, эти детали иногда всё-таки вылезают наружу.
понедельник, 25 апреля 2011 г.
call vs. callvirt (часть 1)
В процессе написания заметки про sealed-классы заинтересовался вопросом: «Влияет ли модификатор sealed на генерируемый компилятором IL-код вызова функций?». Любопытство завело меня довольно далеко; в этом посте — результаты моих изысканий на тему использования компилятором C# инструкций call и callvirt в генерируемом IL-коде.
четверг, 21 апреля 2011 г.
Плохой код
Многие пишут в своих блогах про плохой код. Особенно интересно, когда этот код взят из реальных проектов — живые проблемы всегда интереснее. Я тоже решил в стороне не оставаться.
вторник, 12 апреля 2011 г.
Про sealed-классы
В C# есть ключевое слово «sealed». Применяется оно в форме модификатора к классам, методам, свойствам и событиям, но сегодня речь пойдёт только про классы.
Что все знают про sealed-классы
Применительно к классу, модификатор sealed означает, что от класса нельзя наследоваться. Это правило проверяется на этапе компиляции — если попытаться отнаследоваться от sealed-класса код просто не будет компилироваться. По умолчанию модификатора sealed у класса нет, т.е. любой класс изначально может быть использован в качестве базового (разумеется, за исключением static-классов).
Подписаться на:
Сообщения (Atom)