Visual Basic Stop ステートメントは、ブレークポイントの設定に代わるプログラムを提供します。 デバッガーが Stop ステートメントを検出すると、プログラムの実行が中断されます (中断モードに入ります)。 C# プログラマは、 Debugger.Breakの呼び出しを使用して同じ効果を実現できます。
Stop ステートメントを設定または削除するには、ソース コードを編集します。 ブレークポイントと同様に、デバッガー コマンドを使用して Stop ステートメントを設定またはクリアすることはできません。
End ステートメントとは異なり、Stop ステートメントは変数をリセットしたり、デザイン モードに戻したりしません。 [デバッグ] メニューから [続行] を選択して、アプリケーションの実行を続行できます。
デバッガーの外部で Visual Basic アプリケーションを実行すると、Just-In-Time デバッグが有効になっている場合、Stop ステートメントがデバッガーを起動します。 Just-In-Time デバッグが有効になっていない場合、Stop ステートメントは End ステートメントであるかのように動作し、実行を終了します。 QueryUnload イベントまたは Unload イベントは発生しないため、Visual Basic アプリケーションのリリース バージョンからすべての Stop ステートメントを削除する必要があります。 詳細については、「 Just-In-Time Debugging」を参照してください。
Stop ステートメントを削除する必要を回避するには、条件付きコンパイルを使用できます。
#If DEBUG Then
Stop
#Else
' Don't stop
#End If
もう 1 つの方法は、Stop ステートメントの代わりに Debug.Assert ステートメントを使用することです。 Debug.Assert ステートメントは、指定した条件が満たされていない場合にのみ実行を中断します。 Assert ステートメントは、リリース バージョンをビルドすると自動的に削除されます。 詳細については、「 マネージド コードのアサーション」を参照してください。 デバッグ バージョンで常に実行を中断する Assert ステートメントが必要な場合は、次の操作を実行できます。
さらに別の方法として、 Debug.Fail メソッドを使用することもできます。