【Aモデル録 フェーズ1 C#基礎】
―「使えるけど、乱用すると壊れる」道具―
👉 static は「オブジェクトに属させる意味がない処理」を置く場所です。
便利だから使うものではありません。
設計上、そこに置く必然があるときだけ使うものです。
あなたはもう、ここまで来ています。
👉 static は例外ではなく、所属ルールの一部
ここから先は、
「じゃあ、いつ、なにを static にするのが正解か?」の話です。
class MathUtil
{
public static int Add(int a, int b)
{
return a + b;
}
}int result = MathUtil.Add(3, 5);
👉 どのオブジェクトの仕事でもない
こういう処理は、
static にする意味がある。
class GameSetting
{
public static int MaxPlayer = 4;
}
👉 「1つであるべきもの」
これが static の適材適所。
MainConsole.WriteLine👉 「最初からオブジェクトを前提にできない」世界
static が必要になります。
ここが一番大事です。
class Dog
{
public static int Age;
}
これ、何が起きるか。
👉 犬が1匹に融合してしまう
設計崩壊です。
class Dog
{
public static void Bark() { }
}Dog.Bark();
👉 「犬がいないのに吠えさせる」
= 「オブジェクト」に属していない
これは、
static が悪いのではなく、
役割の選択ミス。
❌ static = new しないから特別
❌ static = 便利。魔法。
❌ static = とりあえず付けるもの
→ 全部違う
👉 static は
「この処理は、オブジェクトに属させる意味が無い」
と判断した結果、選ばれるもの。
static にする前に、これを自問してください。
「この処理、
“1つのモノ”に属していると言えるか?」
static は、
強いけど、不器用な道具です。
正しく使うと設計が締まり、
雑に使うと、後で必ず苦しみます。
だからこの回は、
「static を怖がらず、
でも敬意を持って扱う」
ための回。