Подтвердить что ты не робот

Почему сгенерированный код IL начинается с Nop?

Я пробирался через часть IL одной из моих сборок (через ILDasm), и я заметил, что все мои методы начинаются с инструкции nop.

Кто-нибудь знает, почему это?

4b9b3361

Ответ 1

Сборка была скомпилирована в режиме отладки. Nop инструкции ничего не делают (у меня нет побочных эффектов), но действуют как удобная инструкция для размещения точки останова.

Совет

Если вам нужно место для дополнительной точки останова для целей отладки, вы можете принудительно включить Nop в сборку Debug, добавив пару пустых фигурных скобок, например.

_grid.PreviewMouseRightButtonDown += (sender, e) =>
{
    _isRightMouseDown = true;

    RowColumnIndex cell = _grid.PointToCellRowColumnIndex(e);
    {} //<------ Adding a Nop allows a breakpoint here.
};