🧭 C# / WPF 命名規則ガイド(チーム共通ルール)

WPF + MVVM アプリ開発では、命名規則の統一がとても重要です。コードの読みやすさ・保守性・バグ防止に直結します。


📌 基本ルール(共通)

項目 命名規則
クラス名 パスカルケース UserService, MainViewModel
メソッド名 パスカルケース LoadData(), GetUserName()
プロパティ パスカルケース UserName, IsEnabled
フィールド(private) _キャメルケース _userService, _isLoaded
変数名 キャメルケース userList, isChecked
定数名 全大文字 + アンダースコア MAX_COUNT, DEFAULT_TIMEOUT
イベント名 パスカルケース(動詞+名詞) DataLoaded, ButtonClicked
XAMLの名前(x:Name) パスカルケース MainGrid, SubmitButton

🧱 ViewModel命名の慣例

要素 命名例
ViewModel名 MainViewModel(View名 + ViewModel
コマンド SubmitCommand, LoadCommand
バインドプロパティ IsBusy, SelectedItem
ObservableCollection Users, Orders(複数形)

✋ よくある注意ポイント

✅ 接頭辞・接尾辞の使い方

用途 命名例 意味
Is, Can, Has IsEnabled, CanSubmit 論理値(bool)であることが明確になる
Selected SelectedUser, SelectedItem 現在選択されているデータ
Command LoginCommand, DeleteCommand ICommand実装であることを明示

❌ NGな例

問題点
btnLogin_Click WPFではイベントよりもコマンドでバインディングするべき(MVVM違反)
var1, data2 意味が分からない(何を示すのか分からない)
username(プロパティ名) キャメルケース → パスカルケースに修正すべき

🛠 命名のTips(Visual Studio支援あり)