自作のエラーや警告を発する
込み入ったプログラムを記述していると、C#の文法エラーではないが、プログラムの意図として間違いだとプログラマに伝えたい場合がある。特に個人ではなくチームで開発していると、他のプログラマに間違った使い方をさせないために、このような措置が必要とされることがある。これを実現するために、C#のプリプロセッサには、警告を発する「#warning」と、エラーを発する「#error」が用意されている。以下はそれを用いた例である。
1: using System;
2:
3: #if DEBUG
4: #warning This is a sample warning.
5: #endif
6:
7: #if DEBUG
8: #error This is a sample error.
9: #endif
10:
11: namespace ConsoleApplication9
12: {
13: class Class1
14: {
15: static void Main(string[] args)
16: {
17: }
18: }
19: } |
|
エラーや警告を発するサンプル・プログラム9 |
コンパイル時にエラーや警告を発するために、「#warning」と「#error」が用意されている。 |
これを実行すると以下のようになる。
1: ------ ビルド開始 : プロジェクト : ConsoleApplication9, 構成 : Debug .NET ------
2:
3: リソースを準備しています...
4: 参照を更新しています...
5: メイン コンパイルを実行しています...
6: f:\w\test3\consoleapplication9\class1.cs(4,10): warning CS1030: #warning : 'This is a sample warning.'
7: f:\w\test3\consoleapplication9\class1.cs(8,8): error CS1029: #error : 'This is a sample error.'
8:
9: ビルドの完了 -- エラー 1、警告 1
10: サテライト アセンブリをビルドしています...
11:
12:
13:
14: ---------------------- 終了 ----------------------
15:
16: ビルド : 0 正常終了、1 失敗、0 スキップ |
|
サンプル・プログラム9のビルド結果 |
ソースコードでの指定に従い、警告が1件、エラーが1件出力されている。 |
見てのとおり、警告が1件、エラーが1件出力されているが、この2つは、ソースコード上で明示的に指定されたものである。警告は4行目の#warningによって引き起こされたもので、エラーは8行目の#errorで引き起こされたものである。それぞれ、ソースコード上に記述された文字列がエラーメッセージ中に出力されていることが分かるだろう。
これらの機能は、主に#ifと同時に使われることになるだろう。いつでもエラーになるソースは常識的には意味がないからだ。指定した条件が適切ではないことを警告、またはエラーとして報告するために使用されることが多いだろう。
IDEで折り畳む
Visual Studio .NETでWindowsアプリケーションのプロジェクトを生成すると、ソースコードが生成される。その際、一部のソースコードが、折り畳まれて見えない状態になっていることにお気づきの方も多いと思う。このような、ある範囲のソースコードをワンクリックで見せたり隠したりする(折り畳む)機能が、IDEには存在するのである。通常は、クラスやメソッドなどの単位で折り畳むことができるのだが、上記の例のように、この範囲に該当しない単位で折り畳める場合もある。これは、#regionと#endregionというプリプロセッサの命令を使って実現できる。以下はそれを用いた例である。
1: using System;
2:
3: namespace ConsoleApplication10
4: {
5: class Class1
6: {
7: static void Main(string[] args)
8: {
9: #region sample output code
10: Console.WriteLine("Output 1");
11: Console.WriteLine("Output 2");
12: Console.WriteLine("Output 3");
13: Console.WriteLine("Output 4");
14: Console.WriteLine("Output 5");
15: #endregion
16: }
17: }
18: } |
|
IDEの機能を利用するサンプル・プログラム10 |
「#region」〜「#endregion」で囲まれた範囲はIDEで折り畳むことができる。 |
このソースをIDEで開いてみよう。
|
サンプル・プログラム10をIDEで開いた画面 |
「#region」の行の左側に「-」マークが付いているのが分かる。
|
そして、9行目左側の「-」マークをクリックすると、#regionから#endregionまでの範囲が、以下のように折り畳まれるのである。
|
「-」マークをクリックしたときの画面 |
「#region」を使用した範囲が折り畳まれる。折り畳まれた部分には#regionの後に記述した文字列がグレー表示される。
|
折り畳まれた段階では、#regionの後に記述した文字列がグレーで表示されていることに注目していただきたい。何が折り畳まれているのか、分かりやすく説明する文章を入れておくとよいだろう。
この機能は、ツールが自動生成したソースなど、見る必要のないソースを簡単に隠すために便利である。
Insider.NET 記事ランキング
本日
月間