Как и у @Relster, у меня есть фрагмент кода со следующим
#if DEBUG
if( node.Name == "Book" )
System.Diagnostics.Debugger.Break();
#endif
Где node.Name == "Book"
изменяется в зависимости от состояния, которое я хочу проверить. Оболочка #if DEBUG
гарантирует, что проверки никогда не будут освобождать код.
Это также намного быстрее, чем использование условных точек останова в Visual Studio. Когда вы используете встроенную условную визуальную студию bp, нужно взломать приложение, приостановить все потоки, оценить выражение и определить, истинно ли оно каждый раз, когда оно достигает точки останова. В узком цикле это может быть разницей между почти полной производительностью и выполнением при сканировании.