Почему сгенерированный код IL начинается с Nop? - PullRequest
21 голосов
/ 04 января 2011

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

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

1 Ответ

34 голосов
/ 04 января 2011

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

Совет

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

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

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