009.3. 名前空間とクラスについて(usingの意味)

過去のブログのアーカイブ
この記事は前身のブログのアーカイブを引き継いだものです. 画像が正しく表示できないなど,コンテンツの表示に問題がある恐れがあります.

オブジェクト指向プログラミングでは、クラスは名前空間の後に設置するのが基本です。
そもそも名前空間とは何なのか、この項ではそれについて解説します。

名前空間とはフォルダのようなもの

名前空間はクラスや構造体を束ねるフォルダのような役割があります。名前空間に設置できるのはクラスや構造体(他にもデリゲート)のみです。
名前空間にメソッドや変数を設置することはできません。
例えば、intやstringは正式にはSystem.string、System.intというパスです。画面上のウィンドウを扱うクラスは正式にはSystem.Windows.Forms.Formというクラスです。
図にしてみるとこんな感じで設置されているのです。
スクリーンショット 2016-07-19 22.18.46本当はもっとごちゃごちゃしているのですが、分かりやすいように最低限にまとめてみました。
つまりこのような感じに設置されているんですね。
SystemやWindowsというのは名前空間です。

なぜ名前空間が存在するのか

プログラミングでは様々な命令を組み合わせて、させたい動作をするコードを組みます。
例えば、初歩的なことを言えば文字列を数値に変換する命令、画面上にウィンドウを表示させる命令、高度なことを言えばネットワークにアクセスして情報を手に入れる命令とかあります。
しかし、このような命令をさせるクラスが同じところにあり、大量に並んでるとごちゃごちゃしますよね。
なので、オブジェクト指向プログラミングではクラスごとにフォルダ分けをしているのです!
…しかしフォルダ分けをしなくてもクラスは設置できます。あまりいいことではないのでしないでください…
しかしいちいち名前空間をしていするのは面倒ですよね

usingの役割

名前空間をいちいち指定いして面倒です。それを省略するのがusingの役割です。
クラスファイルを作成するとある程度のusingがあらかじめ書かれていますよね。これはよく使用する名前空間をあらかじめ用意しているということなのです。
例えば、using System;というコードがファイル文頭に書かれていれば、System.Consoleとしていせずとも、Consoleだけでクラスを呼び出すことができるのです!

まとめ

名前空間とは、クラスや構造体等をまとめるフォルダのようなもの。
クラス(構造体)はメソッドやプロパティをまとめるもの。