.NET ヘルプ

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

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

命名規則の概要

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

クラス名はPascal Case命名規則に従うべきです。 つまり、各単語は大文字で始まり、アンダースコアやスペースは使用しません。 インターフェース名もパスカル・ケースに従いますが、接頭辞は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
$vbLabelText   $csharpLabel

クラス名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
$vbLabelText   $csharpLabel

エントリーポイントメソッド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
$vbLabelText   $csharpLabel

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

ローカル変数およびメソッド引数はキャメルケースを使用する必要があります。 つまり、最初の単語は小文字で、それ以降の単語は大文字で始まり、スペースやアンダースコアは使用しません。 最初の文字が大文字ではないという点で、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
$vbLabelText   $csharpLabel

この例では、ローカル変数 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
$vbLabelText   $csharpLabel

静的メンバとフィールド

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

静的分野

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

private static int _totalCustomers;
private static int _totalCustomers;
Private Shared _totalCustomers As Integer
$vbLabelText   $csharpLabel

定数

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

public const int MAX_CUSTOMERS = 100;
public const int MAX_CUSTOMERS = 100;
Public Const MAX_CUSTOMERS As Integer = 100
$vbLabelText   $csharpLabel

イベントハンドラ

イベントハンドラーメソッド名は、通常、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
$vbLabelText   $csharpLabel

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

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

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

private string _customerName;
private string _customerName;
Private _customerName As String
$vbLabelText   $csharpLabel

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

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
}
$vbLabelText   $csharpLabel

この例では、プロパティ名 Balance と DateOpened はパスカルケースであり、プロパティの規約に従っています。

例外処理とメソッド

例外を処理する場合、メソッド名はパスカルの大文字小文字の規則に従ってください。 例外クラス名は、パスカル・ケースで、接尾辞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
$vbLabelText   $csharpLabel

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

常にメソッド定義には意味のある名前と適切な戻り値の型を持たせるようにしてください。戻り値の型は、メソッドシグネチャから明確にわかる必要があります。 例を挙げよう:

public decimal CalculateTotalBalance()
{
    return _totalCustomers * balancePerCustomer;
}
public decimal CalculateTotalBalance()
{
    return _totalCustomers * balancePerCustomer;
}
Public Function CalculateTotalBalance() As Decimal
	Return _totalCustomers * balancePerCustomer
End Function
$vbLabelText   $csharpLabel

この例では、メソッド名 CalculateTotalBalance は説明的で、Pascal Case 命名規則に従っています。

C#定数の命名規則

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

public const double PI = 3.14159;
public const double PI = 3.14159;
Public Const PI As Double = 3.14159
$vbLabelText   $csharpLabel

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

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

C#にはコーディング規約として改行中括弧に関するものもあります。 C#では、各オープニングブレース {は、それに属するステートメントと同じ行に配置し、クロージングブレース }は新しい行に配置し、対応するステートメントと揃える必要があります。 例を挙げよう:

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
$vbLabelText   $csharpLabel

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

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

現代の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
$vbLabelText   $csharpLabel

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

IronPDFを命名規則で使う

C# 命名規則 (開発者向けの動作方法): 図 1 - IronPDF: C# PDF ライブラリ

C#プロジェクトにIronPDFを統合する際は、命名規則に従い、クリーンで読みやすいコードを保つことが重要です。 IronPDFは、C#アプリケーション内でHTMLコンテンツからPDFを生成することができます。 その際、一貫性を保つために、クラス、メソッド、変数の命名規則に従うことが重要です。 以下の例は、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
$vbLabelText   $csharpLabel

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

結論

C# 命名規則(開発者向け):図2 - IronPDF ライセンスページ

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

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

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
C# Nullable Types (開発者のための仕組み)
次へ >
C#初期化リスト(開発者のための仕組み)