I was trawling through some of the IL of one of my assemblies (via ILDasm) and I noticed that all of my methods begin with a nop
instruction.
Does anyone know why that is?
The assembly was compiled in debug mode. Nop
instructions do not do anything (i.e have no side effects), but act as a convenient instruction to place a breakpoint.
Tip
If you need a place for an additional breakpoint for debugging purposes, you can force the inclusion of a Nop
in a Debug build by adding a pair of empty braces, e.g.
_grid.PreviewMouseRightButtonDown += (sender, e) =>
{
_isRightMouseDown = true;
RowColumnIndex cell = _grid.PointToCellRowColumnIndex(e);
{} //<------ Adding a Nop allows a breakpoint here.
};
来源:https://stackoverflow.com/questions/4590382/why-does-generated-il-code-start-with-a-nop