跳到主要内容

C# 命名约定

介绍

在编写 C# 代码时,良好的命名约定是确保代码可读性和可维护性的关键。命名约定是一组规则,用于指导开发者为变量、方法、类、命名空间等元素命名。遵循这些约定可以使代码更易于理解,减少错误,并提高团队协作的效率。

本文将详细介绍 C# 中的常见命名约定,并通过实际案例展示如何应用这些约定。

1. 命名约定概述

C# 中的命名约定主要遵循 PascalCasecamelCase 两种格式:

  • PascalCase:每个单词的首字母大写,例如 MyClassNameCalculateTotal
  • camelCase:第一个单词的首字母小写,后续单词的首字母大写,例如 myVariableNamecalculateTotal
提示

PascalCase 通常用于类名、方法名、属性名等,而 camelCase 通常用于局部变量和参数名。

2. 类名和结构名

类名和结构名应使用 PascalCase,并且通常是名词或名词短语。类名应清晰地描述其职责。

csharp
// 正确的类名
public class CustomerOrder
{
// 类成员
}

// 不推荐的类名
public class customer_order
{
// 类成员
}

3. 方法名

方法名应使用 PascalCase,并且通常是动词或动词短语。方法名应清晰地描述其功能。

csharp
// 正确的方法名
public void CalculateTotal()
{
// 方法实现
}

// 不推荐的方法名
public void calculate_total()
{
// 方法实现
}

4. 变量名

局部变量和参数名应使用 camelCase。变量名应简洁且具有描述性。

csharp
// 正确的变量名
int totalAmount = 100;
string customerName = "John Doe";

// 不推荐的变量名
int TotalAmount = 100;
string CustomerName = "John Doe";

5. 常量名

常量名应使用 PascalCase,并且通常使用全大写字母和下划线分隔单词。

csharp
// 正确的常量名
public const int MaxRetryCount = 5;
public const string DefaultConnectionString = "Server=myServerAddress;Database=myDataBase;";

// 不推荐的常量名
public const int maxRetryCount = 5;
public const string defaultConnectionString = "Server=myServerAddress;Database=myDataBase;";

6. 接口名

接口名应使用 PascalCase,并且通常以字母 I 开头。

csharp
// 正确的接口名
public interface IRepository
{
void Save();
}

// 不推荐的接口名
public interface repository
{
void Save();
}

7. 枚举类型和枚举值

枚举类型名应使用 PascalCase,枚举值也应使用 PascalCase

csharp
// 正确的枚举类型和值
public enum OrderStatus
{
Pending,
Shipped,
Delivered
}

// 不推荐的枚举类型和值
public enum order_status
{
pending,
shipped,
delivered
}

8. 命名空间

命名空间应使用 PascalCase,并且通常反映项目的组织结构和层次。

csharp
// 正确的命名空间
namespace MyCompany.MyProject.DataAccess
{
// 类定义
}

// 不推荐的命名空间
namespace my_company.my_project.data_access
{
// 类定义
}

9. 实际案例

假设我们正在开发一个简单的电子商务应用程序,以下是如何应用命名约定的示例:

csharp
namespace ECommerceApp
{
public class ShoppingCart
{
private List<Product> _products;

public ShoppingCart()
{
_products = new List<Product>();
}

public void AddProduct(Product product)
{
_products.Add(product);
}

public decimal CalculateTotal()
{
decimal total = 0;
foreach (var product in _products)
{
total += product.Price;
}
return total;
}
}

public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
}
}

在这个示例中,我们遵循了以下命名约定:

  • 类名 ShoppingCartProduct 使用 PascalCase
  • 方法名 AddProductCalculateTotal 使用 PascalCase
  • 变量名 _productstotal 使用 camelCase
  • 属性名 NamePrice 使用 PascalCase

10. 总结

遵循 C# 命名约定是编写高质量代码的重要步骤。通过使用 PascalCasecamelCase,我们可以确保代码的一致性和可读性。无论是类名、方法名还是变量名,良好的命名习惯都能使代码更易于理解和维护。

11. 附加资源

12. 练习

  1. 为以下类和方法命名:

    • 一个表示银行账户的类。
    • 一个用于计算利息的方法。
    • 一个用于存储账户余额的变量。
  2. 编写一个简单的 C# 程序,定义一个表示学生的类,并为该类添加属性和方法。确保遵循命名约定。

通过练习,你将更好地掌握 C# 命名约定,并能够在实际项目中应用这些规则。