.NET 帮助 C# 命名约定(开发者用法) Curtis Chau 已更新:七月 28, 2025 Download IronPDF NuGet 下载 DLL 下载 Windows 安装程序 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 命名约定是一套规则和指南,开发人员遵循这些规则来一致地命名变量、方法、类和其他实体。 一致的命名不仅增强代码可读性,还帮助其他开发人员理解和维护你的代码。 下面,我们将逐步讲解 C# 的命名约定,重点关注实际使用和示例。 让我们直接深入讨论命名约定,并在文章后面讨论 IronPDF 库。 命名约定概述 类和接口 类名应遵循 Pascal 命名约定。 这意味着名称中的每个单词都以大写字母开头,没有下划线或空格。 接口名称也应遵循 Pascal 命名,但以前缀 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 命名。 I 前缀明确表示 ICustomer 类型是一个接口。 方法 方法名也使用 Pascal 命名。 每个方法名应该以大写字母开头,每个后续单词也应该以大写字母开头。 这里是一些方法定义的例子: 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 命名。 属性 与方法名一样,属性名也使用 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 $vbLabelText $csharpLabel 局部变量和方法参数 局部变量和方法参数应使用小驼峰命名。 这意味着第一个单词是小写的,后续单词以大写字母开头,没有空格或下划线。 这与 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 $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 在这种情况下,参数的名称是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均为 Pascal 命名,遵循属性的命名约定。 异常处理和方法 处理异常时,方法名称仍应遵循 Pascal 命名约定。 异常类名称应为 Pascal 命名,并以 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 命名约定。 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 在将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# 命名约定,确保你的代码整洁、可读且易于维护。 无论是类名使用 Pascal 命名,局部变量使用小驼峰命名,还是私有字段使用下划线前缀,这些约定有助于建立一致的代码库。 借助 IronPDF,你可以立即开始探索其所有功能,并使用免费试用。 此试用让你亲自体验它如何完美集成到你的工作流程中。 当你准备好迈出下一步时,许可证起价仅为$799。 常见问题解答 C# 中类和接口的一般命名约定是什么? 在 C# 中,类和接口应使用 Pascal 大小写命名,其中每个单词的首字母大写。接口还应包含 'I' 前缀,例如 'ICustomer'。 如何确保 C# 中的方法名称符合最佳实践? C# 中的方法名称应遵循 Pascal 大小写约定,每个单词首字母大写。此约定适用于所有方法,包括入口方法Main。 C# 中推荐的局部变量命名方式是什么? C# 中的局部变量和方法参数应使用驼峰命名法,即第一个单词用小写字母开始,每个后续单词的首字母大写。 C# 中静态字段应如何命名? C# 中的静态字段应使用驼峰命名法并带有下划线前缀,以区分它们与其他字段。 C# 中常量的命名约定是什么? C# 中的常量应使用全大写字母命名,并用下划线分隔单词,以便易于区分。 如何在遵循 C# 命名约定的同时使用库? 在 C# 中使用库时,例如 IronPDF,通过遵循命名约定来保持代码的简洁和可读性。这包括对类和方法使用 Pascal 大小写,对变量使用驼峰命名法。例如,可以使用 IronPDF 从 HTML 生成 PDF,同时保持一致的命名实践。 为什么在 C# 中不推荐使用匈牙利表示法? 在现代 C# 开发中不推荐使用匈牙利表示法,因为它可能会降低代码的可读性。取而代之的是,使用描述变量目的的有意义的名称,并遵循既定的命名约定。 C# 中的事件处理程序方法应如何命名? C# 中的事件处理程序方法应命名为描述它们处理的事件,通常使用 'On' 前缀加上事件名称。这有助于明确方法的目的。 C# 中私人字段应遵循哪些命名约定? C# 中的私有字段应使用带有下划线前缀的驼峰命名法。这有助于将其与局部变量和方法参数区分开。 命名约定怎样让 C# 开发人员受益? 命名约定提高了代码的可读性和可维护性,使开发人员更容易理解和使用代码。在 C# 项目中,包括使用 IronPDF 的项目中,保持一致的命名有助于确保代码库专业整洁。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多 已更新九月 4, 2025 C# String Equals(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 已更新八月 5, 2025 C# Switch 模式匹配(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 C# 可空类型(开发者用法)C# 初始化列表(开发者用法)
已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多