【C#入門】2-4.ビルドとエラーの話

トップ> プログラム> あなたにもできる!C#入門> 【C#入門】2-4.ビルドとエラーの話

ビルドとは

ここまで、「ビルド」の話を一切しないまま進んできましたが、重要な概念なので、ここで説明しておきましょう。
早くプログラムを書きたい!という人は、飛ばしてもらっても構いませんが、任意のタイミングでそのうち読んでおいてください。

ビルドとは、「コンパイルやライブラリのリンクを行って、実行可能ファイルを作成すること」を意味するようです。
初心者にとっては、何やら新しい単語がわんさかでてきてよく分かりません。

かみ砕いて言うと、「ソースコード(設計図)をアプリ(実行体)の形にするよ~」ということです。

詳しく見てみますと、まず、ソースコードというのは、あくまで文字の羅列でしかありません。
どういうことかというと、ソースコードは設計図であり、実際に動作するものではないのです。

例えば、車の設計図があるとして、車の設計図が時速60キロで走ってくれることはありません。あくまで、「設計図を基に作った車」が時速60キロで走ってくれるのです。
設計図と車は別物であり、実際に走るのは車。この関係性と同じことが、プログラムでも言えます。

どちらもコンピュータの上にあるものなので、イメージがつかみずらいかもしれませんが、ソースコードはあくまで設計図であり、設計図通りに実行体を製造することによって、はじめてアプリケーションとして動作します。

そのため、ソースコードが無くても「実行体」さえ持っていればアプリケーションを利用することが出来ます。
スマホにアプリを入れているのも、この「実行体」をいれているから動きます。

さて、この設計図からアプリケーションを作り出す作業を「コンパイル」と言います。
そして更に、コンパイルで生み出された実行体同士を連携付けたりして、実際に動く状態にしてくれるのが「ビルド」です。

C#では、複数の実行体を組み合わせてアプリケーションを作ることがほとんどなので、アプリケーションの「ビルド」を行っているというわけですね。

ビルドしたアプリのありか

それでは、実際にビルドしたものがどうなっているかも確認しておきましょう。
VisualStudioで「開始」ボタンを押して実行をしている時も、実際にはビルドが行われてから、そのビルドされたアプリケーションが実行される、という流れになっています。

【EXEファイル(実行体)】

実際には、ソリューションが保存されているフォルダの中に、プロジェクトのフォルダがあり、その中に「bin」というフォルダがあり、その中にあります。
特に何もいじっていなければ、「Debug」というフォルダのみが存在しているので、その中に入ってみると、プロジェクト名と同じ名前の「exe」ファイルがあるはずです。これが「実行体」です。

「Debug」というフォルダは、デバッグモードでビルドしたアプリケーションが入ります。もう一つモードがあり、「Release」モードでビルドした場合は、「Release」というフォルダがbinの中に作成され、実行体が作られます。

モードの変え方は、VisualStudioの下記の箇所で変更できますが、最初のうちは、あまり気にせずビルドモードを利用しておきましょう。

【ビルドのモード変更】

ビルド構成の違い
「Debug」と「Release」の違いは、ビルドする際のアプリケーションの作り方にあります。
「Debug」モードは、デバッグ作業が行いやすいように、ソースコードをそのままビルドしていて、言ってしまえば無駄な部分などが多々あります。
「Release」モードは、お客さん環境など、実際にリリースする際に利用するモードで、最適化がされて無駄な部分が削られています。

かみ砕いて言うなれば、デバッグモードは、開発時にチェックをしたりするのがやりやすいということだと認識しておいてください。

ビルドエラー

ここで、VisualStudioの便利な機能をお知らせします。ビルドエラーを検知してくれる機能です。
例えば、プログラムの書き方を間違えていて、そもそもコンパイルが通らないようなソースコードを書いている時、「ビルドエラー」として検知してくれて、ビルドできないようになっています。

【ビルドエラーの例:セミコロン忘れ】

上図では、行の最後に「;(セミコロン)」を書き忘れているためにビルドが出来ないので、VisualStudioがエラーを検知してくれています。
このエラーの表示についても、エラー箇所に「赤い波線」が出てくる他に、一覧にエラー箇所、原因などが表示されます。

画面上にエラー一覧が表示されていない場合は、「表示→エラー一覧」で表示させられますので、試してみてください。

また、意外と様々なエラーを検知してくれます。

【ビルドエラーの例:データ型の間違い】

上図では、ラベルのテキストプロパティ(文字型)に数値型のデータを入れようとしているために、ビルドエラーが発生しています。
※データ型の解説は、後のページでやります。

プログラムには、データ型というものがあり、その型が違うもの同士は扱えない制約になっています。そのため、エラーが発生しているのです。

このように、VisualStudioで開発を行っている際に、ビルドがうまくいかない時は、エラーが発生している可能性が高いです。
対処法は、エラーの内容を確かめて一つずつ原因をつぶしていく事です。

基本的にはVisualStudioの言うことに従っていればよいのですが、完ぺきではないので、たまに全く見当違いのエラーを出すことがあります。
なので、そういう場合は根気よく自分でエラーを探す必要があります。

実行時エラー

もう一つ、エラーを紹介しておきます。「実行時エラー」というエラーです。これはビルドエラーとは区別されます。
ビルドエラーは、プログラムの書き方が間違っているために発生し、そもそも実行体の形にすらできないでエラーが発生している状態ですが、実行時エラーは、ビルド自体はできている状態になります。

プログラムの文法的にはあっているものの、実行してみると想定していなかった動きが発生してプログラムが止まってしまう状態の事を指します。

よく「バグ」という言葉を聞くかもしれませんが、「バグ」の大半は実行時エラーです。
ビルドできない状態というのは、さすがに開発者が気づくのですが、実行中に発生するエラーには気づけないことがあります。

そういったエラーが発生している場合は、その原因箇所を突き止め、解消する必要があります。

実行時エラーの探り方については、後々やります。
リンク先:デバッグ実行のやりかた

本ページもしっかり読んでくれた方はありがとうございます。
引き続き、C#を学んでいきましょう。

inserted by FC2 system