.NET 帮助

C# 命名约定(如何为开发人员工作)

发布 2024年十月24日
分享:

命名约定术语表》是一套规则和指南,开发人员在命名变量、方法、类和其他实体时必须遵守。 一致的命名不仅能提高代码的可读性,还能帮助其他开发人员理解和维护您的代码。 下面,我们将逐步介绍 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
VB   C#

请注意类名 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
VB   C#

对于入口点方法,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
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#

静态成员和字段

类中的静态成员,如静态字段常量方法,也遵循特定的命名约定。

静态字段

对于静态字段,命名惯例是使用驼峰大小写,但带有underscore 前缀。 这是与其他领域的区别所在。

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#

事件处理程序

Event handler 方法名称应描述其所处理的事件,通常使用 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#

在本例中,参数被命名为发送方和接收方。 遵循这一命名约定可使您的事件处理程序与行业标准保持一致。

命名私有字段和对象初始化程序

私人字段应采用驼峰式大小写,但前缀应使用下划线。 这有助于将它们与局部变量和方法参数区分开来。

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,遵循了属性的惯例。

异常处理和方法

在处理异常时,方法名称仍应遵循 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
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# 和 num; 常量的命名约定

在 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 表示整数)不鼓励使用.NET、Java、Python 或 Node js。 在翻译过程中,应使用有意义的名称来描述变量的用途而非其数据类型:

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# 命名约定,您可以确保代码简洁、可读性强且易于维护。 无论是在类名中使用 Pascal Case,在局部变量中使用驼峰 Case,还是在私有字段中使用下划线前缀,这些约定都有助于建立一致的代码库。

有了 IronPdf,您可以通过一个免费试用. 试用版可让您亲身体验并了解它与您的工作流程的整合程度。 当您准备好迈出下一步时,许可证起价仅为 749 美元。

< 前一页
C# 可空类型(如何为开发人员工作)
下一步 >
C# 初始化列表(如何为开发人员工作)

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 11,781,565 查看许可证 >