.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();
}
Public Class Customer
	Public Property Balance() As Decimal
End Class
Public Interface ICustomer
	Function GetBalance() As Decimal
End Interface
VB   C#

クラス名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;
}
Public Function CalculateInterest(ByVal principal As Decimal, ByVal rate As Decimal) As Decimal
	Return principal * rate
End Function
VB   C#

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

プロパティ

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

public DateTime DateOpened { get; set; }
public decimal Reserves { get; set; }
public DateTime DateOpened { get; set; }
public decimal Reserves { get; set; }
Public Property DateOpened() As DateTime
Public Property Reserves() As Decimal
VB   C#

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

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

public void SelectCustomer(string customerName)
{
    var selectedCustomer = FindCustomer(customerName);
}
public void SelectCustomer(string customerName)
{
    var selectedCustomer = FindCustomer(customerName);
}
Public Sub SelectCustomer(ByVal customerName As String)
	Dim selectedCustomer = FindCustomer(customerName)
End Sub
VB   C#

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

メソッドの引数

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

public void AddCustomer(string customerName, DateTime dateOpened)
{
    // Add customer logic
}
public void AddCustomer(string customerName, DateTime dateOpened)
{
    // Add customer logic
}
Public Sub AddCustomer(ByVal customerName As String, ByVal dateOpened As DateTime)
	' Add customer logic
End Sub
VB   C#

静的メンバとフィールド

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

静的分野

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

private static int _totalCustomers;
private static int _totalCustomers;
Private Shared _totalCustomers As Integer
VB   C#

定数

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

public const int MAX_CUSTOMERS = 100;
public const int MAX_CUSTOMERS = 100;
Public Const MAX_CUSTOMERS As Integer = 100
VB   C#

イベントハンドラ

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

private void OnCustomerAdded(object sender, EventArgs e)
{
    // Event handling logic
}
private void OnCustomerAdded(object sender, EventArgs e)
{
    // Event handling logic
}
Private Sub OnCustomerAdded(ByVal sender As Object, ByVal e As EventArgs)
	' Event handling logic
End Sub
VB   C#

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

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

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

private string _customerName;
private string _customerName;
Private _customerName As String
VB   C#

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

var seattleCustomer = new Customer
{
    Balance = 1000,
    DateOpened = DateTime.Now
};
var seattleCustomer = new Customer
{
    Balance = 1000,
    DateOpened = DateTime.Now
};
Dim seattleCustomer = New Customer With {
	.Balance = 1000,
	.DateOpened = DateTime.Now
}
VB   C#

この例では、プロパティ名 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 Sub ProcessTransaction()
	Try
		' Transaction logic
	Catch ex As InvalidOperationException
		' Handle exception
	End Try
End Sub
VB   C#

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

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

public decimal CalculateTotalBalance()
{
    return _totalCustomers * balancePerCustomer;
}
public decimal CalculateTotalBalance()
{
    return _totalCustomers * balancePerCustomer;
}
Public Function CalculateTotalBalance() As Decimal
	Return _totalCustomers * balancePerCustomer
End Function
VB   C#

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

C#定数の命名規則

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

public const double PI = 3.14159;
public const double PI = 3.14159;
Public Const PI As Double = 3.14159
VB   C#

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

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;
    }
}
Public Sub AddCustomer(ByVal customerName As String)
	If Not String.IsNullOrEmpty(customerName) Then
		_customerName = customerName
	End If
End Sub
VB   C#

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

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

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

public string CustomerName { get; set; }
public int OrderCount { get; set; }
public string CustomerName { get; set; }
public int OrderCount { get; set; }
Public Property CustomerName() As String
Public Property OrderCount() As Integer
VB   C#

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

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();
    }
}
Imports IronPdf
Public Class PdfReportGenerator
	Private ReadOnly _htmlContent As String
	Private ReadOnly _filePath As String
	Public Sub New(ByVal htmlContent As String, ByVal filePath As String)
		_htmlContent = htmlContent
		_filePath = filePath
	End Sub
	Public Sub GenerateReport()
		Dim pdfRenderer = New ChromePdfRenderer()
		Dim pdfDocument As PdfDocument = pdfRenderer.RenderHtmlAsPdf(_htmlContent)
		pdfDocument.SaveAs(_filePath)
	End Sub
End Class
Public Module Program
	Public Sub Main()
		Dim htmlContent = "<h1>Monthly Report</h1><p>Generated using IronPDF.</p>"
		Dim filePath = "C:\Reports\MonthlyReport.pdf"
		Dim reportGenerator As New PdfReportGenerator(htmlContent, filePath)
		reportGenerator.GenerateReport()
	End Sub
End Module
VB   C#

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

結論

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

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

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

< 以前
C# Nullable Types (開発者のための仕組み)
次へ >
C#初期化リスト(開発者のための仕組み)