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名 | MainViewModel (View名 + ViewModel ) |
コマンド | SubmitCommand , LoadCommand |
バインドプロパティ | IsBusy , SelectedItem |
ObservableCollection | Users , Orders (複数形) |
用途 | 命名例 | 意味 |
---|---|---|
Is , Can , Has |
IsEnabled , CanSubmit |
論理値(bool)であることが明確になる |
Selected |
SelectedUser , SelectedItem |
現在選択されているデータ |
Command |
LoginCommand , DeleteCommand |
ICommand実装であることを明示 |
例 | 問題点 |
---|---|
btnLogin_Click |
WPFではイベントよりもコマンドでバインディングするべき(MVVM違反) |
var1 , data2 |
意味が分からない(何を示すのか分からない) |
username (プロパティ名) |
キャメルケース → パスカルケースに修正すべき |