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

Другие ответы являются неправильными, когда они говорят, что Вы не можете присвоить 'этому'. Правда, Вы не можете для типа класса, но Вы можете для типа структуры:

public struct MyValueType
{
    public int Id;
    public void Swap(ref MyValueType other)
    {
        MyValueType temp = this;
        this = other;
        other = temp;
    }
}

В любой точке структура может изменить себя путем присвоения 'этому' как так.

21
задан YellPika 4 January 2011 в 03:22
поделиться

1 ответ

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

Подсказка

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

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

    RowColumnIndex cell = _grid.PointToCellRowColumnIndex(e);
    {} //<------ Adding a Nop allows a breakpoint here.
};
35
ответ дан 29 November 2019 в 20:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: