Ответы @Philip Rieck и @John немного отличаются.
Джона ...
#if DEBUG
System.Diagnostics.Debugger.Break();
#endif
работает только если вы скомпилировали с набором символов условной компиляции DEBUG.
ответ Филиппа ...
if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
Debugger.Break();
}
будет работать для любого отладчика, так что вы тоже немного напугаете хакеров.
Также обратите внимание на SecurityException
, которое он может выбросить, так что не выпускайте этот код в открытый доступ.
Еще одна причина, по которой нет ...
Если отладчик не подключен, пользователей спрашивают, хотят ли они присоединить
отладчик. Если пользователи говорят «да», отладчик запускается. Если отладчик
подключен, отладчик сигнализируется с событием точки останова пользователя, и
отладчик приостанавливает выполнение процесса так же, как если бы отладчик
достигнута точка останова.
от https://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break(v=vs.110).aspx