【C#】 クラス名の命名規則
命名規則の基本
C#では、クラス名を付ける際に一般的な命名規則に従うことが推奨されます。以下の基本ルールを守ることで、コードの可読性が向上し、メンテナンスがしやすくなります。
- クラス名は大文字で始める(PascalCase を使用する)。
- 意味のある名前を使用し、曖昧な名前を避ける。
- 略語は一般的なものでない限り使用を避ける。
- クラスの役割が分かるような命名を心がける。
- 特殊なクラス(例: 例外クラス、コントローラクラス)には適切な接尾辞を付ける。
PascalCase の使用
C#では、クラス名には PascalCase(単語の先頭を大文字にする) を使用するのが標準です。
例えば、以下のような命名が推奨されます。
class CustomerManager { }
class DataProcessor { }
class OrderService { }
逆に、以下のような命名は避けるべきです。
class customerManager { } // 先頭が小文字(NG)
class data_processor { } // スネークケース(NG)
class Orderservice { } // 単語の区切りが不適切(NG)
クラスの接尾辞
クラスの役割が明確になるように、適切な接尾辞(Suffix)を付けることがあります。
- Manager: 何らかの管理を行うクラス
- Service: 特定の処理やサービスを提供するクラス
- Repository: データの永続化を扱うクラス
- Controller: MVC アーキテクチャでコントローラの役割を持つクラス
- Exception: 例外クラス(この場合、必ず “Exception” を末尾に付ける)
例:
class UserManager { }
class PaymentService { }
class ProductRepository { }
class HomeController { }
class InvalidOperationException : Exception { }
名前空間との関係
クラス名は名前空間(namespace)と組み合わせて考えると、より分かりやすくなります。
例えば、次のような構成にすると、クラス名が直感的になります。
namespace MyApp.Services
{
class OrderService { }
}
namespace MyApp.Repositories
{
class OrderRepository { }
}
上記のように、クラスの責務(ビジネスロジック、データ処理、管理など)ごとに適切な名前空間を設定すると、プロジェクトが整理され、可読性が向上します。
具体例
いくつかの具体的なクラス名の例を紹介します。
// 顧客データを管理するクラス
class CustomerManager { }
// 注文処理を担当するクラス
class OrderProcessor { }
// データを提供するクラス
class DataProvider { }
// 設定を管理するクラス
class ConfigurationManager { }
// 例外クラス
class NotFoundException : Exception { }
避けるべき命名
以下のような命名は、可読性や一貫性の面で問題があるため避けるべきです。
- 意味が不明瞭な名前
class DoStuff { } // 何をするクラスなのか分からない
class Processor { } // 何を処理するのか不明
class CCustomerManager { } // C は不要
class MDataProcessor { } // M は不要
class order_service { } // C# ではスネークケースは非推奨
class strOrderName { } // ハンガリアン記法は不要
適切な命名規則を守ることで、チーム開発でもコードの可読性が高まり、保守性が向上します。