【初心者向け】C#のデバッグ方法【Visual Studio】

今回はVisual Studio C#でプログラミングを行う上で必須の知識となる『デバッグ』について解説します。

デバッグは、プログラム内のバグやエラーを解消することをいいますが、
デバッグで扱う知識は、プログラムが自分の思い通りに動いているのかを一行ずつ確認したり、プログラムの実行途中の処理結果を確認したりすることに役立ちます。

なお、今回の解説で使用しているプログラムは下記の記事で作成したものを使用しています。

あわせて読みたい
【初心者向け】C#で作るWindowsシャットダウンタイマ#3【Visual Studio】 前回から引き続き、C#でWindows OSを時間指定してシャットダウンするアプリケーションを作成していきます。 アプリの最終的な完成イメージは以下の動画の通りです。時間...
目次

プログラムを一時停止(ブレイクポイント)

ブレイクポイントは実行中のプログラムを指定した行で一時停止する機能です。
ブレイクポイントを設置するには、プログラムコード中の一時停止したい行の左側をクリックします。ブレイクポイントを指定した行は赤く表示され、行の左側に赤丸が表示されます。
下の動画を参考にしてください。

ブレイクポイントを設置したら、実際にプログラムを実行してみましょう。
画面上部の表示が[Debug]になっていることを確認し、ボタン、または[F5]キーを押します。

プログラムを実行すると、ブレイクポイントを設置した行でプログラムが一時停止します。
一時停止した行は黄色で表示されます。この状態をデバッグモードと呼びます。

デバッグモードから再び続きのプログラムを実行する場合は、再度ボタン、または[F5]キーを押します。

プログラムを一行ずつ実行(ステップ実行)

プログラムを一行ずつ実行するには、デバッグモード中に画面上部に表示されている下記画像のステップインボタンまたはショートカットキーF11を押します。

ステップインボタン

ステップ実行するたびに黄色の行が移動し、プログラムが一行ずつ実行されていることを確認できます。下の動画の例では、for文を繰り返す様子がわかります。

デバッグモード中に変数にマウスカーソルを合わせることで、変数の中の値を簡易的に確認することができます。下の画像の例では変数『 i 』に『 2 』が入っていることがわかります。

変数の値を確認(ウォッチ)

デバッグ中に確認したい変数の値を常時表示したい場合は、ウォッチ機能を使います。
デバッグモード中に変数を右クリックし、[ウォッチの追加]を選択します。

画面下部の[ウォッチ]画面に選択した変数が追加されます。
[ウォッチ]画面が表示されない場合は、画面上部ツールバーから[デバッグ] – [ウィンドウ] – [ウォッチ] – [ウォッチ1]を選択することで表示されます。

たとえばfor文等で変数『 i 』が0から1ずつ増加する場合は、ステップ実行することで、下の動画のように変数『 i 』の値が変化することを確認できます。

変数の値を確認(デバッグメッセージ)

次に確認したい変数等の値をメッセージとして出力する方法をご紹介します。

まず、準備として確認したいプログラムの最初に次の一行を追加します。

using System.Diagnostics;

今回は下の図のようにアルファベット順に挿入してみました。

変数をメッセージとして出力するには次のように記述します。

Debug.WriteLine(【表示したい変数】);

今回は下の図のようなfor文の中の、変数『 i 』を出力するように入力しました。
出力された際に何のメッセージなのかがわかるように『 i: 』という文字列のあとに変数『 i 』の値を表示するようにしています。

この状態でfor文の中をステップ実行すると、画面下部の出力ウィンドウに次のように出力されます。
出力]画面が表示されない場合は、画面上部ツールバーから[デバッグ] – [ウィンドウ] – [出力] を選択することで表示されます。

上記の例だとfor文中の変数『 i 』が0から1ずつ増加して出力されることを確認できます。

まとめ

今回はデバッグの方法についてご紹介しました。
基本的なデバッグは今回紹介したもので事足りると思いますが、他にも便利な機能は多数ありますので、追ってご紹介します。

C#の魅力

C#はWindows OSで知られるMicrosoftが開発したプログラミング言語です。

現在、OSシェア75%という圧倒的なユーザ数を誇るWindowsですが、
Windowsデスクトップアプリケーションを作成するとなった場合、最有力として採用されるプログラミング言語のひとつがC#でしょう。

 参考: TECH+『3月デスクトップOSシェア、Windowsが増加しMacが減少

最近ではWindows以外のアプリケーション開発環境(クロスプラットフォーム)も強化され、macOS、Linux上で動作するアプリケーションに加え、iOS、Androidのスマートフォンアプリの開発も可能となっています。

また、ゲームエンジンUnityの開発言語として使用できることもC#の魅力です。
Unityは家庭用ゲーム機(PlayStation、Nintendo Switch、Xbox等)の他にもスマートフォンゲームアプリの開発も可能な人気のゲーム開発環境です。
Unityで作られた有名なゲームとしては『ポケモンGO』、『原神』等が挙げられます。

以上のように非常に汎用性が高く、多種多様な開発現場で使用でき、魅力的なプログラミング言語であるC#ですが、もう一つの特徴である『オブジェクト指向』という考え方が、プログラミング初心者にとっては高いハードルと感じてしまうかもしれません。

オブジェクト指向が難しいとされる所以は、説明する側もどうやって説明すれば伝わるのかわからず、明確な解説方法が確立されていないという点が挙げられるでしょう。
無理に一言でまとめた概念を解説をしたところで、かえってハードルが高いと感じ、習得意欲を削ぐ結果になりかねません。

今回C#の魅力を伝えるうえで便宜上オブジェクト指向という言葉を出しましたが、
C#を習得したい方は、まずはオブジェクト指向という言葉は一旦忘れてしまって構いません。
まずはC#でできることを実際にプログラミングして慣れることが、習得への第一歩だと考えています。
そのうちご自身が実現したいアプリケーションを作成していくうえで、C#の様々な機能やテクニックを覚えていくことになると思います。
C#を使っていればオブジェクト指向はその中で自然と身についていくでしょう。

とはいえ、独学でC#を習得することはなかなか難しいと感じる方も多いかもしれません。
近年はオンラインスクールを利用して短期間で集中して実務レベルまで習熟させるという方も増えています。

プログラミングのオンラインスクールを活用する場合は、現役のエンジニアが講師となるスクールが優位でしょう。開発現場で通用する質の高い実務ノウハウを学ぶことができます。

また、オンラインスクールであれば全国どこからでも受講できるため、わざわざ都会へ出たり交通費をかけることなく、ライフスタイルに合わせて効率的にスキルを身につけることができることが魅力です。

ITエンジニアとしての強力な武器となるC#を習得するための先行投資として、オンラインスクールは一つの選択肢となり得るでしょう。
無料体験できるオンラインスクールもあるため、独学でも習得できそうか、短期集中で学んだ方がいいのか、ご自身の力量を見極めてみるのもいいのではないでしょうか。

テックアカデミー無料体験


こちらの記事ではオンラインスクールを受講する価値はあるのかについて解説しています。あわせてどうぞ

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次