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

07-08:決まっている名前・自分で決める名前・連動する名前

ここで解決すること

C#のコードに出てくる名前は、実は3種類に分けられます。

この3つの見分けがつかないと、コードを読み書きするたびに「これは覚える単語なのか、自由に決めていい名前なのか、それとも何かに連動しているのか」が分からず、混乱の原因になります。


実例で見分ける

public partial class MainPage : ContentPage
{
    private readonly string _filePath;
    private readonly ObservableCollection<string> _logs = new();
    private int _editingIndex = -1;

    public MainPage()
    {
        InitializeComponent();
        _filePath = Path.Combine(AppContext.BaseDirectory, "SeedLog.dat");
        LogList.ItemsSource = _logs;
        LoadLogs();
    }

    private void OnSaveClicked(object sender, EventArgs e)
    {
        // ...
    }
}

決まっている名前(C#や.NETの側で用意されている)


自分で決める名前(意味を考えて名付けたもの)


連動して決まる名前(自分で決めた名前に合わせて記述すべきもの)


見分け方のコツ(書くときの判断基準)

コードを書くとき、迷ったら3つの問いを順番に自問します。

1. 「これは、これから"何を作るか"を宣言する言葉か?」

private・readonly・class・stringのような言葉は、C#に対して「こういう性質のものを作りたい」と伝える言葉です。
C#があらかじめ用意している語彙から選ぶので、自分で作ることはできません。

2. 「これは、すでに自分で決めた何かと、名前を揃える必要がある場面か?」

コンストラクタ名のように、一度別の場所で決めた名前(クラス名)と、必ず一致させなければならない場面があります。
この場合、名前を選ぶ余地はもう残っていません。すでに決めた名前が、そのまま連動して決まります。

3. 「1でも2でもない。」 名札を付ける場面

上のどちらでもなければ、それは「自分が今作っているものへ、意味を考えて名前を付ける」場面です。
_logsやOnSaveClickedのように、C#側から与えられるものは何もありません。


なぜ3種類あるのか

もし全ての言葉を自分で決めなければならないとしたら、他の人が書いたコードを誰も読めなくなります。
「決まっている名前」は、この共通のルールを支えます。

一方で、「自分で決める名前」がなければ、意味の違うデータやクラスを区別できません。

そして「連動して決まる名前」は、この2つの中間にあります。
C#には「クラスが作られるとき、必ずこの名前のコンストラクタを探しに行く」という仕組みがあり、この仕組みが正しく働くために、コンストラクタ名はクラス名と一致していなければなりません。
もし自由に名付けられてしまうと、C#側が「どれが初期化処理なのか」を見つけられなくなってしまいます。

👉 決まっている名前が「共通のルール」を作り、自分で決める名前が「そのアプリ固有の意味」を作り、連動する名前が「決めた名前同士の一貫性」を守ります。


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

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