.NET ヘルプ

C#命名規則(開発者のための仕組み)

ジョルディ・バルディア
ジョルディ・バルディア
2024年10月24日
共有:

命名規則は、変数、メソッド、クラス、その他のエンティティに一貫した名前を付けるために開発者が従うルールとガイドラインのセットです。 一貫性のあるネーミングは、コードの可読性を高めるだけでなく、他の開発者があなたのコードを理解し、維持するのにも役立ちます。 以下では、C#の命名規則を順を追って説明し、実用的な使い方と例に焦点を当てます。 では、早速、命名規則について説明しましょう。IronPDFライブラリ後ほどこの記事の中で述べます。

命名規則の概要

クラスとインターフェイス

クラス名は、パスカル・ケースの命名規則に従ってください。 つまり、各単語は大文字で始まり、アンダースコアやスペースは使用しません。 インターフェース名もパスカル・ケースに従いますが、接頭辞はIで始めます。 例えば:

public class Customer
{
    public decimal Balance { get; set; }
}
public interface ICustomer
{
    decimal GetBalance();
}
public class Customer
{
    public decimal Balance { get; set; }
}
public interface ICustomer
{
    decimal GetBalance();
}

クラス名Customerとインターフェース名ICustomerが、ともにPascal Caseに従っていることに注目してください。 I接頭辞は、ICustomerタイプがインターフェースであることを明確にします。

方法

メソッド名もパスカルケースを使用します。 メソッド名はすべて大文字で開始し、それに続く単語もすべて大文字で開始する必要があります。 以下は、メソッドの定義の例です:

public decimal CalculateInterest(decimal principal, decimal rate)
{
    return principal * rate;
}
public decimal CalculateInterest(decimal principal, decimal rate)
{
    return principal * rate;
}

エントリ・ポイント・メソッドには、static void Main()メソッド名にはパスカルケースを使用します。

プロパティ

メソッド名と同様に、プロパティ名もパスカルケースを使用します。 プロパティは、それが何を表しているかを明確に説明する名前を付ける必要があります:

public DateTime DateOpened { get; set; }
public decimal Reserves { get; set; }
public DateTime DateOpened { get; set; }
public decimal Reserves { get; set; }

ローカル変数とメソッドの引数

ローカル変数メソッド引数は、キャメルケースを使用してください。 つまり、最初の単語は小文字で、それ以降の単語は大文字で始まり、スペースやアンダースコアは使用しません。 最初の文字が大文字ではないという点で、Pascal's Caseとは異なります。

public void SelectCustomer(string customerName)
{
    var selectedCustomer = FindCustomer(customerName);
}
public void SelectCustomer(string customerName)
{
    var selectedCustomer = FindCustomer(customerName);
}

この例では、ローカル変数 selectedCustomerはキャメルケースの慣習に従い、メソッドの引数 customerNameもキャメルケースです。

メソッドの引数

メソッドの引数の名前は説明的で、キャメルケースの命名規則に従ってください。 これにより、コードの可読性が向上し、開発者が各引数が何を表しているかを理解できるようになります。

public void AddCustomer(string customerName, DateTime dateOpened)
{
    // Add customer logic
}
public void AddCustomer(string customerName, DateTime dateOpened)
{
    // Add customer logic
}

静的メンバとフィールド

静的フィールド定数*メソッド**のようなクラス内の静的メンバも、特定の命名規則に従います。

静的分野

静的フィールドでは、キャメルケースを使用しますが、アンダースコアの接頭辞**を付けるのが命名規則です。 これにより、他の分野との差別化を図ることができます。

private static int _totalCustomers;
private static int _totalCustomers;

定数

定数は通常、すべて大文字を使用し、読みやすさを向上させるために単語をアンダースコアで区切って命名します。 例えば:

public const int MAX_CUSTOMERS = 100;
public const int MAX_CUSTOMERS = 100;

イベントハンドラ

イベントハンドラ メソッド名は、通常、接頭辞 On の後にイベント名を使用して、処理するイベントを記述する必要があります。 イベントハンドラメソッドのパラメータには、通常、オブジェクトの送信者とイベントの引数が含まれます。

private void OnCustomerAdded(object sender, EventArgs e)
{
    // Event handling logic
}
private void OnCustomerAdded(object sender, EventArgs e)
{
    // Event handling logic
}

この場合、パラメータはsenderとeという名前です。 この命名規則に従うことで、イベント・ハンドラを業界標準と一致させることができます。

プライベート・フィールドとオブジェクト・イニシャライザの命名

プライベートフィールドは、キャメルケースの慣習に従ってください。 これは、ローカル変数やメソッドの引数と区別するのに役立ちます。

private string _customerName;
private string _customerName;

オブジェクト初期化子**を使用すると、クラスのインスタンスを作成するときにプロパティに直接値を割り当てることができます:

var seattleCustomer = new Customer
{
    Balance = 1000,
    DateOpened = DateTime.Now
};
var seattleCustomer = new Customer
{
    Balance = 1000,
    DateOpened = DateTime.Now
};

この例では、プロパティ名 BalanceとDateOpenedは、プロパティの慣例に従い、Pascal Caseになっています。

例外処理とメソッド

例外を処理する場合、メソッド名はパスカルの大文字小文字の規則に従ってください。 例外クラス名は、パスカル・ケースで、接尾辞Exceptionで終わる必要があります。 例えば:

public void ProcessTransaction()
{
    try
    {
        // Transaction logic
    }
    catch (InvalidOperationException ex)
    {
        // Handle exception
    }
}
public void ProcessTransaction()
{
    try
    {
        // Transaction logic
    }
    catch (InvalidOperationException ex)
    {
        // Handle exception
    }
}

戻り値の型とメソッドの定義

常に、メソッド定義に意味のある名前と適切な戻り値の型があることを確認してください。戻り値の型は、メソッドのシグネチャから明らかでなければなりません。 例を挙げよう:

public decimal CalculateTotalBalance()
{
    return _totalCustomers * balancePerCustomer;
}
public decimal CalculateTotalBalance()
{
    return _totalCustomers * balancePerCustomer;
}

この例では、メソッド名 CalculateTotalBalance は説明的で、パスカル・ケースの命名規則に従っています。

C#定数の命名規則

C#では、定数名はすべて大文字で、単語はアンダースコアで区切ってください。 これにより、定数が他の変数よりも目立つようになります。 例を挙げよう:

public const double PI = 3.14159;
public const double PI = 3.14159;

この規約は、異なるタイプにまたがって適用され、定数名が一貫しており、コード内で認識しやすいことを保証します。

C# 改行と中括弧のコーディング規約

C#には改行ブレースコーディング規約もあります。 C#では、各開口部 brace{ は、それが属するステートメントと同じ行にあるべきであり、閉じブレース} は改行し、対応する文と揃えてください。 例を挙げよう:

public void AddCustomer(string customerName)
{
    if (!string.IsNullOrEmpty(customerName))
    {
        _customerName = customerName;
    }
}
public void AddCustomer(string customerName)
{
    if (!string.IsNullOrEmpty(customerName))
    {
        _customerName = customerName;
    }
}

適切な書式を使用することで、コードが読みやすくなり、従いやすくなります。

ハンガリー語表記を避ける

最新のC#開発では、ハンガリー記法を使用し、変数名の前にデータ型を付けます。(例:文字列ならstrName、整数ならintCount)、は推奨されていません。 代わりに、データ型よりも変数の目的を説明する意味のある名前を使用してください:

public string CustomerName { get; set; }
public int OrderCount { get; set; }
public string CustomerName { get; set; }
public int OrderCount { get; set; }

このアプローチにより、コードがより明確になり、保守性が高まります。

IronPDFを命名規則で使う

C#の命名規則(開発者のための仕組み):図1 - IronPDF:C# PDFライブラリ

統合時IronPDFC#プロジェクトでは、命名規則に従うことで、きれいで読みやすいコードを維持することが不可欠です。 IronPdfは以下のことを可能にします。HTMLコンテンツからのPDFC#アプリケーション内で使用することができます。 その際、一貫性を保つために、クラス、メソッド、変数の命名規則に従うことが重要です。 以下の例は、IronPDFを使用してコードの読みやすさを向上させ、命名規則を遵守するシンプルな実装例です:

using IronPdf;
public class PdfReportGenerator
{
    private readonly string _htmlContent;
    private readonly string _filePath;
    public PdfReportGenerator(string htmlContent, string filePath)
    {
        _htmlContent = htmlContent;
        _filePath = filePath;
    }
    public void GenerateReport()
    {
        var pdfRenderer = new ChromePdfRenderer();
        PdfDocument pdfDocument = pdfRenderer.RenderHtmlAsPdf(_htmlContent);
        pdfDocument.SaveAs(_filePath);
    }
}
public static class Program
{
    public static void Main()
    {
        var htmlContent = "<h1>Monthly Report</h1><p>Generated using IronPDF.</p>";
        var filePath = @"C:\Reports\MonthlyReport.pdf";
        PdfReportGenerator reportGenerator = new PdfReportGenerator(htmlContent, filePath);
        reportGenerator.GenerateReport();
    }
}
using IronPdf;
public class PdfReportGenerator
{
    private readonly string _htmlContent;
    private readonly string _filePath;
    public PdfReportGenerator(string htmlContent, string filePath)
    {
        _htmlContent = htmlContent;
        _filePath = filePath;
    }
    public void GenerateReport()
    {
        var pdfRenderer = new ChromePdfRenderer();
        PdfDocument pdfDocument = pdfRenderer.RenderHtmlAsPdf(_htmlContent);
        pdfDocument.SaveAs(_filePath);
    }
}
public static class Program
{
    public static void Main()
    {
        var htmlContent = "<h1>Monthly Report</h1><p>Generated using IronPDF.</p>";
        var filePath = @"C:\Reports\MonthlyReport.pdf";
        PdfReportGenerator reportGenerator = new PdfReportGenerator(htmlContent, filePath);
        reportGenerator.GenerateReport();
    }
}

これらの命名規則に従うことで、あなたのコードはプロフェッショナルで整理され、レポート作成にIronPDFを使用している間でも読みやすくなります。

結論

C#の命名規則(開発者のための仕組み):図2 - IronPDFライセンスページ

これらのC#命名規則に従うことで、あなたのコードがきれいで、読みやすく、保守しやすいことを保証することができます。 クラス名にはパスカル・ケース、ローカル変数にはキャメル・ケース、プライベート・フィールドにはアンダースコアの接頭辞を使用するなど、これらの規約は一貫したコードベースを確立するのに役立ちます。

IronPdfを使えば、そのすべての機能を簡単に試すことができます。無料試用. このトライアルでは、ワークフローにどの程度統合できるかを実際に試して確認することができます。 次のステップに進む準備ができたら、ライセンスはたったの $749 から始まります。

ジョルディ・バルディア
ソフトウェアエンジニア
ジョルディは、Iron Softwareでのスキルを活かしていないときには、ゲームプログラミングをしており、Python、C#、C++に最も堪能です。彼は製品テスト、製品開発、研究の責任を共有しており、継続的な製品改善に大きな価値をもたらしています。この多様な経験は彼を常に挑戦的で魅力的に保ち、彼はIron Softwareで働く一番好きな側面の一つだと言っています。ジョルディはフロリダ州マイアミで育ち、フロリダ大学でコンピューターサイエンスと統計学を学びました。
< 以前
C# Nullable Types (開発者のための仕組み)
次へ >
C#初期化リスト(開発者のための仕組み)