我正在浏览我的一个程序集的某些IL(通过ILDasm),我注意到我的所有方法都以 nop
指令开头。
有谁知道为什么会这样?
答案 0 :(得分:34)
程序集是在调试模式下编译的。 Nop
指令不做任何事情(即没有副作用),但作为放置断点的方便指令。
提示强>
如果你需要一个额外的断点用于调试目的,你可以通过添加一对空括号来强制在Debug构建中包含Nop
,例如。
_grid.PreviewMouseRightButtonDown += (sender, e) =>
{
_isRightMouseDown = true;
RowColumnIndex cell = _grid.PointToCellRowColumnIndex(e);
{} //<------ Adding a Nop allows a breakpoint here.
};