フッターコンテンツにスキップ
.NETヘルプ

C#の命名規則(開発者向けの仕組み)

命名規則は、変数、メソッド、クラス、その他のエンティティを一貫して命名する際に開発者が従う規則とガイドラインのセットです。 一貫した命名はコードの可読性を向上させるだけでなく、他の開発者がコードを理解し、維持するのを助けます。 以下では、実際の使用例と例に焦点を当て、C# の命名規則をステップバイステップで解説します。 命名規則とIronPDF ライブラリについての記事の後半で詳しく説明します。

命名規則の概要

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

クラス名は、Pascal Case 命名規則に従う必要があります。 これは、名前の各単語が大文字で始まり、アンダースコアやスペースがないことを意味します。 インターフェース名も 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 型がインターフェースであることを明示します。

メソッド

メソッド名も Pascal Case を使用します。 すべてのメソッド名は大文字で始める必要があり、それに続く各単語も大文字で始まります。 こちらがメソッド定義の例です:

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() についても同じです。メソッド名に Pascal Case を使用します。

プロパティ

メソッド名と同様に、プロパティ名も Pascal Case を使用します。 プロパティはそれが何を表すかを明確に示すように命名する必要があります:

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 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接頭辞で始まるイベント名を使用して、処理するイベントを説明すべきです。 イベントハンドラメソッドのパラメータには、オブジェクトsenderとイベント引数が典型的に含まれます。

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

この場合、パラメータsendereと命名されています。 この命名規則を遵守することで、イベントハンドラの業界標準との一貫性が保たれます。

プライベートフィールドとオブジェクトの初期化子の命名

プライベートフィールドはキャメルケースを採用し、アンダースコアの接頭辞を付けるべきです。 これにより、ローカル変数やメソッド引数から区別されます。

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

この例では、プロパティ名 BalanceDateOpened がプロパティのための規則に従って Pascal Case で表記されています。

例外処理とメソッド

例外処理を行うときも、メソッド名はPascal Case 規則に従う必要があります。 例外クラス名も 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
$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ライブラリ

IronPDFをC#プロジェクトに統合する際は、命名規則を守ってきれいで読みやすいコードを維持することが重要です。 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#命名規則に従うことで、コードがきれいで読みやすく、メンテナンスが容易であることを保証できます。 クラス名にはPascal Caseを使用したり、ローカル変数にはキャメルケースを使ったり、プライベートフィールドにはアンダースコアのプレフィックスを使用することなどが一貫したコードベースを作成する手助けとなります。

IronPDFを使用することで、無料トライアルを通じてそのすべての機能を探索できます。 このトライアルにより、ワークフローへどれだけうまく統合できるかを自ら試して体験できます。 次のステップへ進む準備ができたら、ライセンスは$799から始まります。

よくある質問

C#でのクラスとインターフェイスの一般的な命名規則は何ですか?

C#では、クラスとインターフェイスはそれぞれの単語が大文字で始まるPascal Caseを使用して名前を付けるべきです。インターフェイスには'I'のプレフィックスも含め、例として'ICustomer'があります。

C#のメソッド名がベストプラクティスに準拠するようにするにはどうすればよいですか?

C#のメソッド名は、各単語を大文字で始めるPascal Caseの規則に従うべきです。この規則は、エントリーポイントメソッドMainを含むすべてのメソッドに適用されます。

C#でローカル変数の名前を付ける推奨方法は何ですか?

C#のローカル変数とメソッド引数は、最初の単語が小文字で、それ以降の各単語の最初の文字が大文字になるキャメルケースを使用して名前を付けるべきです。

C#で静的フィールドはどのように名前を付けるべきですか?

C#の静的フィールドは、他のフィールドと区別するために、キャメルケースとアンダースコアのプレフィックスを使用して名前を付けるべきです。

C#での定数の命名規則は何ですか?

C#の定数はすべての単語を大文字で、単語をアンダースコアで区切って名前を付けるべきです。これにより簡単に識別できます。

C#の命名規則に従いながらライブラリを使用するにはどうすればよいですか?

C#でIronPDFのようなライブラリを使用する際、クラスやメソッドに対するPascal Case、および変数に対するキャメルケースを使用して、クリーンで読みやすいコードを維持します。例えば、IronPDFを使用してHTMLからPDFを生成し、一貫した命名規則を守りましょう。

C#でハンガリアン記法が推奨されないのはなぜですか?

ハンガリアン記法は、コードの可読性を低下させる可能性があるため、現代のC#開発では推奨されません。代わりに、変数の目的を説明する意義のある名前を使用し、確立された命名規則に従ってください。

C#でイベントハンドラメソッドはどのように名前を付けるべきですか?

C#のイベントハンドラメソッドは、処理するイベントを説明する名前を付けるべきで、通常、イベント名の前に'On'というプレフィックスを使用します。これによりメソッドの目的が明確になります。

C#でプライベートフィールドに従うべき命名規則は何ですか?

C#のプライベートフィールドは、キャメルケースとアンダースコアのプレフィックスを使用して名前を付けるべきです。これにより、ローカル変数やメソッド引数と区別できます。

命名規則がC#の開発者にどのようにメリットをもたらしますか?

命名規則はコードの可読性と保守性を向上させ、開発者がコードを理解しやすくします。また、IronPDFのようなライブラリを使用するC#プロジェクトでも、一貫した命名規則によりプロフェッショナルでクリーンなコードベースを確保します。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。