Почему сгенерированный код IL начинается с Nop?
Я пробирался через часть IL одной из моих сборок (через ILDasm), и я заметил, что все мои методы начинаются с nop
инструкция.
Кто-нибудь знает, почему это так?
1 ответ
Решение
Сборка была скомпилирована в режиме отладки. Nop
инструкции ничего не делают (т.е. не имеют побочных эффектов), но действуют как удобные инструкции для установки точки останова.
Совет
Если вам нужно место для дополнительной точки останова для целей отладки, вы можете принудительно включить Nop
в сборке отладки, добавив пару пустых фигурных скобок, например
_grid.PreviewMouseRightButtonDown += (sender, e) =>
{
_isRightMouseDown = true;
RowColumnIndex cell = _grid.PointToCellRowColumnIndex(e);
{} //<------ Adding a Nop allows a breakpoint here.
};