コメント機能

コメントとは

プログラムのソースコードにはソフトウェアの動作を指定する構文を記述していきます。
短いコードならばコードを見てすぐに処理が理解できても、複雑な処理や数十、数百行にも渡るコードになると、どういう処理をしているのかがわかりにくくなってきます。
そのようなときはコメントを利用するとコードの意味を理解する助けになります。


static void Main(string[] args)
{
    //底辺の長さ
    int baseLength = 10;

    //高さ
    int heightLength = 16;
    
    //三角形の面積を表示
    Console.WriteLine(baseLength * heightLength / 2);

    //入力待ち
    Console.ReadLine();
}

3、6、9、12行目の、「//」から始まる行がコメントです。

コメントはプログラムとしては全く意味を持たない行です。
ソースコードをコンパイルするとき、コメント行は削除してコンパイルされます。
上のコードは以下のコードと全く同じ動作となります。


static void Main(string[] args)
{
    int baseLength = 10;
    int heightLength = 16;
    Console.WriteLine(baseLength * heightLength / 2);
    Console.ReadLine();
}

つまり、コメント行に何を書いてもプログラムの動作にはまったく影響しません。
コメントは人間がソースコードを読むときに読みやすくするための機能です。

自分ひとりでプログラミングするだけならばあまり必要に感じないかもしれません。
しかし、自分で書いたコードでも日が経つとどういう処理をしたのかを忘れてしまうことはよくあります。
少し複雑な処理を書いた場合はコメントを残しておくと将来の助けになるかもしれません。

複数人でプログラム開発をしている場合は他人に処理の意味やコードの意図を伝えるためにコメントを書きます。
コメントを適切にしないと開発効率が落ちたりバグの原因になったりもします。

ただ、パッと見でわかるような処理にわざわざコメントを書くのは無駄ですし、逆に読みにくくなります。
また、できるだけコメントを使わずとも見た目に分かりやすいコードを書く努力も必要です。
(処理効率上の理由で見た目に分かりにくいコードとなってしまう場合もあるので一概には言えませんが)

コメントの位置

「//」記号は、その場所から行末までをコメント化します。
以下のように行の途中からコメントを書くことも可能です。


int baseLength = 10; //底辺の長さ
int heightLength = 16; //高さ

コメントアウト

コメントはプログラムの動作に影響しない行ですから、これを利用してプログラムコードを削除することなくプログラムの動作から除外することができます。


static void Main(string[] args)
{
    int baseLength = 10;
    int heightLength = 16;

    //Console.WriteLine(baseLength + heightLength / 2);
    Console.WriteLine(baseLength * heightLength / 2);

    Console.ReadLine();
}

6行目は三角形の面積の公式が間違っています。
これにすぐに気づければコードを修正して終わりですが、何が間違っているのかが分からない、または修正後のコードが正しいのか確信がないような場合は、元のコードに手を加えたり削除したりせずにそのままコメント化して残しておきます。
修正前と修正後のコードを見比べて、正しい結果が得られるまでコードを修正します。
このような手法をコードのコメントアウトといいます。

元の処理の記述を残しておけば、やっぱり前のほうがよかったという場合でもすぐに元に戻すことができます。

複数行にわたるコメント

「//」によるコメントは一行だけのコメントですが、複数行をまとめてコメント行にする方法もあります。


//この行はコメント
//←毎回この記号が必要

/*
ここはコメント
複数行のコメント
何行でもまとめてコメント化できる
*/

「/*」と「*/」の間に挟まれた箇所はまとめてコメントとして扱われます。

ただし「/*」記号の次に「*/」記号が現れた時点でコメントの終了となってしまうので、入れ子にすることはできません。


/*
ここはコメント
/* ここもコメント */
ここもコメント行のつもりだがエラー
*/

これは「/* */」によるコメント行を含む複数行をまとめてコメント化しようとするときに犯してしまいがちなミスです。


/* 底辺の長さ */
int baseLength = 10;

/* 高さ */
int heightLength = 16;

//↑を
//全部まとめてコメント化しようとすると
//↓

/*
/* 底辺の長さ */
int baseLength = 10;

/* 高さ */
int heightLength = 16;
*/

//17行目でエラー
//13、16行目のコメント化ができていない

以下のように「//」記号によるコメント行は含まれていても問題ありません。


/*
コメント行
//コメント行
コメント行
*/

Visual Studioのコメント化機能

Visual Studioには複数の行をまとめてコメント化する機能があります。
これを利用すれば「//」記号を何度も記述する手間が省けますし、「/* */」記号の入れ子問題も解決できます。

以下がコメント化とコメント化解除のボタンです。
Visual Studioのコメント化機能1

コメント化したい行を選択した状態でコメント化ボタンをクリックすると、選択行が一気にコメント化されます。
Visual Studioのコメント化機能2

コメント化の解除も同様の手順で行えます。

メソッドのコメント(summary)

自作メソッドの上部には「summary」という特殊なコメントを書く場合があります。
これはドキュメントコメントの項で改めて説明します。