【C#】コーディングルール

コーディングルールとは

ソースコードを書く際のルールのことです。

チーム、プロジェクト、会社でコーディングルールが決められています。

下記のリンクがC#のコーディング規則です(Microsoftの公式ドキュメント)。
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/inside-a-program/coding-conventions

 

コーディングルールのメリット

コーディングルールを決めることにより、3つのメリットがあります。

■保守性の向上
◎誰でもプログラムが理解できる(可読性)
◎プログラムのバグを発見、修正しやすくなる(メンテナンス)
◎他のプログラマがプロジェクトに参加しやすくなる

■生産性の向上
◎チームで共通のルールがあることで、生産性が向上する

■品質の担保
◎バグの少ないプログラムが作れる
◎コードレビューがしやすい

 

コーディングスタイル

コーディングスタイルとは、ソースコードのレイアウトのことです。

■インデントや空白の空け方

■括弧の付け方、改行の位置

■変数などの名前の付け方

コーディングスタイルが統一されていることにより、可視性・可読性が向上します。

 

命名規則

命名規則とは、クラス名やメソッド名など識別名を決める際のルールのことです。

名前の衝突や使い回しによるバグの発生を未然に防ぐことにつながります。

C#で名前をつける際は、「パスカル」と「キャメル」にわかれます。

C#の命名では、多くがパスカル標記になります。

 

パスカルケース

名前の頭文字を大文字にする命名規則です。

例:「GetName」「UserId」

パスカルと呼ばずにアッパーキャメルと呼ばれることもあります。

 

キャメルケース

名前の頭文字を小文字にする命名規則です。

例:「getName」「userId」

C#では主にprivateフィールド(変数)に対してキャメルケースを用います。

キャメルケースは、ローワーキャメルと呼ばれることもあります。

 

禁止事項

禁止事項は、プロジェクトにおいてやってはいけないことです。

禁止事項を守ることで、重大なミスやバグの発生を未然に防ぐことにつながります。

 

ソースコード

 

名前空間

名前空間は「パスカル」で記述します。

namespace Sample.ViewModel

 

クラス(型)

namespace Sample.ViewModel
{
    public class ItemEntity
    {
    }
}

 

インターフェース

インターフェースは先頭にインターフェースを示す「 I 」をつけます。

namespace Sample.ViewModel
{
    public interface ICustomer
    {
    }
}

 

メソッド

メソッドも「パスカル」で記述します。

private string GetData()
{
    return "データ";
}

 

プロパティ

プロパティは、セッターとゲッターを1つのメソッドとして記述できるものです。

そのため、メソッドと同様に「パスカル」で記述します。

public string CustomerId {get; set;}

 

フィールド

フィールド(データ)は、アクセス修飾子がprivateかpublicかで命名方法が異なります。

しかし、publicで公開するフィールドはプロパティを用いるのが一般的です。

そのため、フィールドはアクセス修飾子がprivateなものがほとんどです。

privateなフィールドを記述する場合は「キャメル」を用います。

private static string _connectionString;

上記のように、privateのフィールドには、「キャメル」に加えて「 _ 」アンダーバーを先頭につけることが一般的です。

 

パラメータ

パラメータは「キャメル」になります。

パラメータとは、メソッドの引数のことです。

private void SetData(int customerId, string customerName)
{
}

 

【補足】スタイルコップアナライザー

StyleCopAnalyzersとは、コードを解析してルールに違反している箇所を警告してくれるツールになります。

こちらのツールを入れておくことで、より綺麗なコードが書けるようになります。

 

おすすめ書籍

■リーダブルコード