【Aモデル録 フェーズ1 C#基礎】
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)
{
// ...
}
}
public,private, partial ,readonly, class, voidContentPagestring, intObservableCollectionEventArgs, object, sender, eMainPage_filePath, _logs, _editingIndexOnSaveClickedx:Name):LogListMainPageと必ず一致しなければならない:public MainPage()InitializeComponent()コードを書くとき、迷ったら3つの問いを順番に自問します。
private・readonly・class・stringのような言葉は、C#に対して「こういう性質のものを作りたい」と伝える言葉です。
C#があらかじめ用意している語彙から選ぶので、自分で作ることはできません。
コンストラクタ名のように、一度別の場所で決めた名前(クラス名)と、必ず一致させなければならない場面があります。
この場合、名前を選ぶ余地はもう残っていません。すでに決めた名前が、そのまま連動して決まります。
上のどちらでもなければ、それは「自分が今作っているものへ、意味を考えて名前を付ける」場面です。_logsやOnSaveClickedのように、C#側から与えられるものは何もありません。
もし全ての言葉を自分で決めなければならないとしたら、他の人が書いたコードを誰も読めなくなります。
「決まっている名前」は、この共通のルールを支えます。
一方で、「自分で決める名前」がなければ、意味の違うデータやクラスを区別できません。
そして「連動して決まる名前」は、この2つの中間にあります。
C#には「クラスが作られるとき、必ずこの名前のコンストラクタを探しに行く」という仕組みがあり、この仕組みが正しく働くために、コンストラクタ名はクラス名と一致していなければなりません。
もし自由に名付けられてしまうと、C#側が「どれが初期化処理なのか」を見つけられなくなってしまいます。
👉 決まっている名前が「共通のルール」を作り、自分で決める名前が「そのアプリ固有の意味」を作り、連動する名前が「決めた名前同士の一貫性」を守ります。