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 Property Balance() As Decimal
End Class
Public Interface ICustomer
Function GetBalance() As Decimal
End InterfacePublic Class Customer
Public Property Balance() As Decimal
End Class
Public Interface ICustomer
Function GetBalance() As Decimal
End Interfaceクラス名ICustomerが共にパスカルケースに従っていることに注意してください。 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 FunctionPublic Function CalculateInterest(ByVal principal As Decimal, ByVal rate As Decimal) As Decimal
Return principal * rate
End Functionエントリーポイントメソッド 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 DecimalPublic Property DateOpened() As DateTime
Public Property Reserves() As Decimalローカル変数とメソッド引数
ローカル変数とメソッド引数はキャメルケースを使用するべきです。 これは、最初の単語が小文字で、続く単語が大文字で始まり、スペースやアンダースコアがないことを意味します。 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 SubPublic Sub SelectCustomer(ByVal customerName As String)
Dim selectedCustomer = FindCustomer(customerName)
End Subこの例では、ローカル変数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 SubPublic Sub AddCustomer(ByVal customerName As String, ByVal dateOpened As DateTime)
' Add customer logic
End Sub静的メンバーとフィールド
クラスの静的メンバー、たとえば、静的フィールド、定数、メソッドは、特定の命名規則に従います。
静的フィールド
静的フィールドの場合、命名規則はキャメルケースを使用し、アンダースコアの接頭辞を付けます。 これにより、他のフィールドと区別されます。
private static int _totalCustomers;private static int _totalCustomers;Private Shared _totalCustomers As IntegerPrivate Shared _totalCustomers As Integer定数
定数は通常、全て大文字で命名され、単語の間にアンダースコアをつけて可読性を向上させます。 例えば:
public const int MAX_CUSTOMERS = 100;public const int MAX_CUSTOMERS = 100;Public Const MAX_CUSTOMERS As Integer = 100Public Const MAX_CUSTOMERS As Integer = 100イベントハンドラ
イベントハンドラーメソッド名は、通常、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 SubPrivate Sub OnCustomerAdded(ByVal sender As Object, ByVal e As EventArgs)
' Event handling logic
End Subこの場合、パラメータはeと名付けられています。 この命名規則を遵守することで、イベントハンドラの業界標準との一貫性が保たれます。
プライベートフィールドとオブジェクトの初期化子の命名
プライベートフィールドはキャメルケースを採用し、アンダースコアの接頭辞を付けるべきです。 これにより、ローカル変数やメソッド引数から区別されます。
private string _customerName;private string _customerName;Private _customerName As StringPrivate _customerName As Stringオブジェクト初期化子を使用すると、クラスのインスタンスを作成するときにプロパティに直接値を割り当てることができます:
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
}Dim seattleCustomer = New Customer With {
.Balance = 1000,
.DateOpened = DateTime.Now
}この例では、プロパティ名DateOpenedがプロパティの規則に従い、パスカルケースです。
例外処理とメソッド
例外処理を行うときも、メソッド名は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 SubPublic Sub ProcessTransaction()
Try
' Transaction logic
Catch ex As InvalidOperationException
' Handle exception
End Try
End Sub返り値の型とメソッド定義
いつもメソッド定義が意味のある名前と適切な返り値の型を持っていることを確認してください。返り値の型はメソッドシグネチャから明確にすべきです。 こちらが例です:
public decimal CalculateTotalBalance()
{
return _totalCustomers * balancePerCustomer;
}public decimal CalculateTotalBalance()
{
return _totalCustomers * balancePerCustomer;
}Public Function CalculateTotalBalance() As Decimal
Return _totalCustomers * balancePerCustomer
End FunctionPublic Function CalculateTotalBalance() As Decimal
Return _totalCustomers * balancePerCustomer
End Functionこの例では、メソッド名CalculateTotalBalanceが記述的であり、パスカルケースの命名規則に従っています。
C# 定数の命名規則
C#では、定数名は全て大文字で、単語はアンダースコアで区切られるべきです。 これにより、定数が他の変数と区別されます。 こちらが例です:
public const double PI = 3.14159;public const double PI = 3.14159;Public Const PI As Double = 3.14159Public Const PI As Double = 3.14159異なる型においてもこの規則が適用され、定数名が一貫性を持ち、コード内で簡単に認識できるようにします。
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 SubPublic Sub AddCustomer(ByVal customerName As String)
If Not String.IsNullOrEmpty(customerName) Then
_customerName = customerName
End If
End Sub適切な書式設定を使用することで、コードが読みやすく追いやすくなります。
ハンガリアン記法の回避
現代の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 IntegerPublic Property CustomerName() As String
Public Property OrderCount() As Integerこのアプローチにより、コードはより明確でメンテナンスしやすくなります。
IronPDFを使用した命名規則

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 ModuleImports 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これらの命名規則を守ることで、IronPDFを使用したレポート作成時にもプロフェッショナルで整理された読みやすいコードが維持されます。
結論
これらのC#命名規則に従うことで、コードがきれいで読みやすく、メンテナンスが容易であることを保証できます。 クラス名にはPascal Caseを使用したり、ローカル変数にはキャメルケースを使ったり、プライベートフィールドにはアンダースコアのプレフィックスを使用することなどが一貫したコードベースを作成する手助けとなります。
IronPDFを使用することで、無料トライアルを通じてそのすべての機能を探索できます。 このトライアルにより、ワークフローへどれだけうまく統合できるかを自ら試して体験できます。 次のステップに進む準備ができたら、ライセンスはわずか$999から始まります。
ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。