Page3■ひな型コードの「名前空間」と「クラス」それでは、ソース・コード「Form1.cs」を参照して「名前空間」と「クラス」を確かめてみよう。System.Windows.Forms.Form{......中略......}}ソース・コード(Form1.csファイル)の「名前空間」と「クラス」(一部改変)「namespace」が名前空間を意味し、「class」がクラスを意味する。C#では「namespace」(VBでは「Namespace」)がオブジェクトを分類するための境界線である「名前空間」を意味し、「class」(VBでは「Class」)がオブジェクトそのものである「クラス」を意味する。namespaceに続けて記述されている「WindowsFormsApplication1」が名前空間の名称で、classに続けて書かれている「Form1」がクラスの名称である。これを先ほどの例の「○○ソフト会社の山田です」と同じように表現すると「WindowsFormsApplication1名前空間のForm1クラスです」となり、C#のコードで表記すると「.(ドット)」でつなげて「WindowsFormsApplication1.Form1」になる。当然ながら、名前空間とクラスには始まり(開始地点)と終わり(終了地点)がある。Class」を記述することで、それぞれのスコープを確定する)。TIPSの「ソース・コードを一瞬で整形するには?」を参照するとよい)。■「名前空間」と「クラス」の基本的な書き方(構文)C#での名前空間(=クラスを分類してグループ化するための境界線)の基本的な書き方は、次のとおりだ。<名前空間の名称>{......中略(ここにクラスを書く)......}「......中略(ここにクラスを書く)......」の部分にクラスを書き込む。そのクラスの書き方は、次のとおりだ。<基底クラスの名称>{......中略......}classの前にあるpublicはアクセシビリティ(アクセス制御)を指定するための修飾子である。このpublic修飾子(VBではPublic修飾子)で修飾されたclassは、「どのクラスからでもアクセス可能な状態」になる。ほかにも、クラスがあるプロジェクト内(=アセンブリ内)からのみアクセス可能にするinternal修飾子(VBではFriend修飾子)などがある。クラスに対してアクセシビリティを明示しない場合、internal修飾子を付与したのと同等になる。アクセシビリティは実際のプログラミングで必要になって初めてその価値が理解できると思う。よって、取りあえず現段階では、オブジェクト指向プログラミングではアクセシビリティを設定する必要があるということを知っておいてほしい。Class)と呼ばれる(「基本クラス」「スーパー・クラス」、「親クラス」とも呼ばれる)。Class)と呼ばれる(「サブ・クラス」、「子クラス」とも呼ばれる)。基底クラスと派生クラスの記述は、新たに作成する派生クラスが基底クラスの全特徴を引き継ぐことを意味している。冒頭で示した次のコードでは「Form1」クラス(派生クラス)が「System.Windows.Forms.Form」クラス(基底クラス)の全特徴を引き継いでいる。System.Windows.Forms.Form{......中略......このように、ある基底クラスの全特徴を引き継いで新たなクラスを作成することを、オブジェクト指向では「継承」と呼ぶ。「継承」を現実世界で例えると、「人間」の全特徴を引き継ぎ、さらに「ボーっとしている」「博多ラーメンが好きである」などの独特な特徴(=個性)が付け加えられて、「山田」という人物が作成されることになる。この例で分かるように、オブジェクト指向の継承は、基底クラスの全特徴を引き継ぎ、さらに何らかの特徴を付け加えて拡張した新たなクラスを作成するための機能である。継承を使わずに新しいクラスを作成することもできる。<基底クラスの名称>」の部分を省略すればよい(ちなみにソース・コード(Program.csファイル)では、実際に基底クラスの記述が省略されたProgramクラスが定義されている)。先ほど示したコードにある基底クラスの「System.Windows.Forms.Form」は、名前空間とクラスを「.(ドット)」で連結した書き方で、「System.Windows.Forms名前空間のFormクラス」という意味になる。名前空間の内容が「System.Windows.Forms」というように、「.」でさらに細かく分かれているが、このように名前空間は大分類/中分類/小分類のように階層的な分類を構成することが可能である。これを現実世界の階層的な分類で置き換えるなら、「日本の東京の○○ソフト会社」(=名前空間)の「山田」(=クラス)と表現するのと同じである。ちなみに、いうまでもなく、このSystem.Windows.Forms名前空間のFormクラスは、.NETのクラス・ライブラリにあらかじめ用意されたクラスである。それでは次のページで、Form1クラスがどのようにして実行されるのかを見ていこう。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。