前回は、プログラミングをしていませんがVisual Studioを使うことで、実際にプログラムを実行できることを確認しました。
これから、プログラムの動作やプログラミンに必要な知識などを説明していきます。
もとになる情報源は次の通りです。
- Microsoft Docs マイクロソフトドキュメントのページです。
ドキュメントのトップページとなります。 - Visual Studio IDE ドキュメント Visual Studio IDEの使用法について記載されています。
- C# のガイド プログラミング言語C#について記載されています。
- .NET ドキュメント .NETのドキュメントです。
- ウィキペディア フリーの百科事典です。
プログラムを編集するためのコードエディターにプログラムが表示されます。
(前回IDEを閉じたときの状態で開かれますので、実際には起動時に開かれていると思います。)
※プログラムとコードの違い・・・どちらも同じような気がしますが・・・。アプリケーションコードとは言わないような気がします。
それでは、さっそくプログラムを解読していきましょう。
12行目
/// アプリケーションのメイン エントリ ポイントです。
という行があります。この行はXMLドキュメントコメントです。
XMLとは、Extensible Markup Language(エクステンシブル マークアップ ランゲージ)の略です。
C#とは異なる言語です。
ですので、実際にはなくてもプログラムを実行できます。
XMLの構文は開始タグ<〇〇 >で始まり終了タグ</〇〇>で一つのブロックになります。
また、C#のコードに含めるため特殊な文字でC#の言語と異なっていることを示しています。
ここでは、
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
が、一つのブロックとして記述されています。
では<summary>タグとは何でしょうか。
Docsによると、「<summary> タグは、型または型のメンバーの説明に使用します。」と書いてあります。
またまた。わからい言葉が出てきてます。
型とは何でしょうか。
C#はオブジェクト指向の言語です。プログラムの構造をオブジェクトとしてとらえて、プログラムを構築します。
たとえば、ボールを一つのオブジェクトとしてとらえてみます。ボールはどのようなものでしょうか?
外形が丸い。また手にもって投げることができる。などボールがボールであるための条件があります。
プログラムの構成もオブジェクトとしてとらえるように作成します。これがオブジェクト指向のプログラミングです。
では、プログラムでオブジェクトを作るには何が必要でしょうか。例えば、たい焼きを作るために、たい焼きの型と中身が必要なように、プログラムでも型と中身が必要です。型と中身が、先ほど説明した、型と型のメンバーに該当します。
というこで、<summary> タグは型と型のメンバーを説明するために使うタグになります。
ここでは、型と型のメンバーとしての説明として「アプリケーションのメイン エントリ ポイントです。」と記述しています。
では、その説明の対象としているものはどこにあるのでしょうか?
探ってみましょう
<summary>タグの解説で「コンパイル時に /doc を指定して、ドキュメント コメントをファイルに出力します。 」となっています。
※コンパイル・・・C#は高水準言語といわれ、人が読むにはわかりやすいが、コンピュータには理解できない言語です。そのため、コンピュータが実行できる言語に変換する必要があります。これを行うのがコンパイラというプログラムです。そしてその変換する行為をコンパイルといいます。
/docというのは、コンパイラへどのようにプログラムをコンパイルするか指示するためのオプションの一つです。ソリューションエクスプローラでPropertiesをダブルクリックします。
この画面で、プログラムについて様々な設定ができます。
ここで、左側のメニューで「ビルド」を選択します。
画面を下のほうへスクロールすると
「□XMLドキュメントファイル」という項目があります。
これをチェックします。
で、IDEのメニューでビルド→WindowsFormsApp1のビルドを実行します。
ファイルが作成されたか確認します。
ファイルエクスプローラで「C:\Users\〇〇\source\repos\WindowsFormsApp1\WindowsFormsApp1\bin\Debug」フォルダを見てみます。
WindowsFormsApp1.xmlというファイルができているのがわかります。
では、このファイルを開いてみましょう。
xml形式のファイルは、「Microsoft Visual Studio 2019」で開くことができます。
選択して開きます。
もう一つIDEが立ち上がり、ファイルの中身が表示されます。
25行目から
<summary>
アプリケーションのメイン エントリ ポイントです。
</summary>
という記述があります。
ちゃんと出力されています。
では、24行目に
<member name="M:WindowsFormsApp1.Program.Main">
という記述があります。
どうやら、<summary>はこれの説明のようです。
これは、メンバーの名前です。
一文字目”M”はメンバーの種類でメソッドを表します。
「:」コロンは区切り記号です。
次の
「WindowsFormsApp1.Program.Main」は完全修飾名といわれるものです。
名前空間のルートから始まります。と解説に書いてあります。
※「名前空間」とは型をグループ化するための仕組みです。
ここでは、「WindowsFormsApp1」が名前空間の名前です。
「.」は区切り記号です。
次に「Program」はクラスの名前を表しています。
クラスとは何でしょうか?
オブジェクト指向の説明のところで「型」という言葉が出てきました。
それが、クラスです。型=クラスとなります。
次の「Main」。これがメソッドの名前です。
ということで、まとめると
Mainというのはメソッドで、アプリケーションのメイン エントリ ポイントです。
ということになります。
それでは、xmlファイルを閉じます。
今回はここまでです。
IDEにはいろいろな機能があってわかりにくいと思いますが、
一つ一つドキュメントで調べることが理解を深める道かと思います。