C# 字段大写约定

标签 c#

<分区>

我的教科书(Visual C# How to Program,6/e)指出 C# 中的字段应使用驼峰命名法。这对应于 Microsoft C# 指南中给出的示例: https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/fields

public class CalendarEntry
{
    // private field
    private DateTime date;
    // ...
}

但是官方 Microsoft 命名约定明确指出字段应使用 PascalCase(尽管他们没有提供私有(private)字段的示例,因为它们通常应该是这样): https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/capitalization-conventions

标识符:字段, 外壳:帕斯卡, 示例:

class MessageQueue
{
    public static readonly TimeSpan InfiniteTimeout;
}

public struct UInt32
{
    public const Min = 0;
}

Sooo,我怎么知道要根据 MS 编码约定使用哪种情况来保持我的编码风格正确?

最佳答案

据我所知,c# 没有一成不变约定……是的,技术上“官方” 约定,但它并没有 100% 地遵循,即使在 MS 自己的源代码中也是如此,而且许多程序员和/或公司当然也没有虔诚地遵循它。

考虑到这一点,我首选的约定,也是迄今为止我见过的最好的约定,是 ReSharper 中默认设置的约定。我强烈建议遵循这个约定:

  • PascalCase 用于:类、结构、方法、属性、public |内部 | protected 字段(不管 static | readonly | const)和 private const 字段。
  • _underscorePrefixCamelCase 用于:private _fields(const 时除外)。
  • camelCase 用于:局部 变量。

关于C# 字段大写约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46777544/

相关文章:

c# - 将 IConfiguration 注入(inject)到 .NET 6.0 上的 Windows 窗体

c# - ASP.NET MVC : Why Range Data Annotation is not working on checkbox in client side?

c# - 为 WebForms 网站项目添加 MVC 支持

c# - Asp.Net Core 2.0 session 破坏了每个构建

c# - Stream 中的模糊引用

c# - 如何使用 csproj 在 .net core 中注册测试发现者

c# - 在 Python 脚本中使用 .Net (C#) dll

c# - FilePathResult 下载进度 MVC

c# - 什么可能导致 System.Net 错误 :AcquireCredentialsHandle() failed with error 0X8009030D?

c# - 复杂的 C# Linq 算法