【Aモデル録 フェーズ1 C#基礎】

07-02:名前空間(namespace)

~「名前の衝突」を防ぐための整理棚~

一言で言うと

👉 名前空間とは、「名前の置き場所(住所/アドレス)」です。

もっと噛み砕くと、

同じ名前を、安心して使えるようにするための仕組み

です。


「これまでの解説とは流れが違う」宣言

これまでは、結論を先に伝えていましたが、

この「名前空間」は、順を追って最後に存在理由を知る方が、理解しやすくなります。


まず、見たことがある形

あなたはすでに、これを見ています。

using System;

ここで出てきた System。
これが 名前空間 です。


何が問題で、名前空間が生まれたか

いきなり核心に行きます。

プログラムが大きくなると、こうなります。

名前が被る。

例:

class User { }

これが、

どっちの User?

👉 コンピュータは、空気を読まない。
👉 曖昧な指示は、即エラー。


名前空間の役割

そこで登場するのが、名前空間。

「この名前は、どのグループに属しているか」
を明確にするための仕組み


イメージ(Aモデル)

System.Console

これは、

という意味。

👉 フルネームで呼べば、絶対に間違えない。


実際のコードで見る(超最小)

System.Console.WriteLine("Hello");

これは、

「System という名前空間の中にある
Console クラスの
WriteLine メソッドを使う」

という、完全指定です。


じゃあ、using System; は何をしてる?

ここで戻ります。

using System;

これは、

「System って言ったら、System 名前空間のことね」
と省略を許可する宣言

です。

だから、こう書ける。

Console.WriteLine("Hello");

重要ポイント(実践的)


「どこに書くの?」

これも明確にしておきます。

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Hello");
    }
}

👉 これは using ( ) と完全に別物
(using ( )の講義とつながる)


よくある誤解

❌ 名前空間 = フォルダ
→ 違う

似ているけど、概念としては別。


なぜ、C#はこんな面倒なことをしているのか

ここ、既存解説が触れない、疑問溢れポイントです(笑)

これを想定すると、

「名前が被らない設計」

は、最初から必須。

👉 C#は
「小さいコードでも、大きくなっても壊れない前提」
で作られています。


理解まとめ


最後に

名前空間は、
今すぐ役に立つ知識ではありません。

でも、

「なぜこんな書き方をさせられているのか」

が分かると、
C#を雑に扱わなくなります。


構成と読み方|タイトル一覧

Top - はじめに|この忘備録と「Aモデル」について