.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 大小寫。 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()在這種情況下,慣例相同——對方法名稱使用 Pascal 命名法。

屬性

如同方法名稱,屬性名稱也使用帕斯卡命名法。 屬性應該命名為明確描述它們所代表的內容:

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 的大寫規則不同,因為第一個字母不大寫。

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 命名法,符合屬性的命名慣例。

異常處理與方法

處理例外時,方法名稱應仍符合 Pascal Case 命名慣例。 例外類別名稱也應採用帕斯卡命名法,並以例外結尾。 例如:

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 是描述性的,並遵循 Pascal Case 命名約定。

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# 中,每個開啟的大括號{應該與它所屬的語句在同一行,並且是閉合的括弧}** 應該在新的一行,與相應的陳述對齊。 以下是一個範例:

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 庫

在整合时IronPDF在您的 C# 專案中,遵循命名慣例以保持清晰、易讀的程式碼是至關重要的。 IronPDF 允許您生成從 HTML 內容生成 PDF 文件在您的C#應用程式中。 在此過程中,遵循命名慣例為您的類別、方法和變數命名,以保持一致性是很重要的。 以下是使用 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# 可空類型 (開發者如何使用)
下一個 >
C# 初始化列表(開發人員如何運作)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >