【问题标题】:Class Names in C# (English vs Intellisense) [closed]C# 中的类名(英语与 Intellisense)[关闭]
【发布时间】:2014-10-16 17:34:00
【问题描述】:

我正在使用 Visual Studio 2013 编写 C# 代码。

我应该如何命名我的课程?以“对英语友好”的方式,或者以一种对 IntelliSense 更友好的方式。

例如,我有一个名为 IColorComparer。以及一些实现该接口的类:

QuadraticColorComparer vs ColorComparerQuadratic
DefaultColorComparer vs ColorComparerDefault
TrauerColorComparer vs ColorComparerTrauer

问题:C#/VS 中的类有官方命名约定吗?是否考虑了 IntelliSense 之类的工具?

【问题讨论】:

  • “标准”完全取决于您(如果这是个人项目)或您的雇主(如果这是工作项目)。然而,普遍的共识是将其命名为有用的东西。
  • 现在它不是基于意见的,但它仍然没有得到很好的研究。谷歌“命名约定 C#”,你会发现足够多的信息。
  • Resharper 会在您输入“ColorComparer”时让您的智能感知拉出所有这些作为建议,无论区分符是在开头还是结尾。

标签: c# naming convention


【解决方案1】:

以下是 Microsoft 提供的一些关于 C# 命名约定的链接

一般命名约定

https://msdn.microsoft.com/en-ca/library/ms229045(v=vs.110).aspx

大小写约定

https://msdn.microsoft.com/en-ca/library/ms229043(v=vs.110).aspx

命名的总体准则

https://msdn.microsoft.com/en-ca/library/ms229002(v=vs.110).aspx

这是“dofactory”为C#编码标准提供的另一个链接

http://www.dofactory.com/reference/csharp-coding-standards

【讨论】:

    【解决方案2】:

    将差异化因素放在开始通常是有意义的。例如:

    • TextReader / StreamReader / StringReader
    • Stream / FileStream / MemoryStream / NetworkStream

    这就像有一个形容词来提供更多细节:“红皮书,蓝皮书”。

    另一种选择是避免暴露类本身,而是:

    public static class ColorComparers
    {
        public static IColorComparer Quadratic { get { ... } }
        public static IColorComparer Default { get { ... } }
        public static IColorComparer Trauer { get { ... } }
    }
    

    那么你就可以把它当作:

    IColorComparer comparer = ColorComparers.Quadratic;
    

    还有什么真的需要实现细节吗?实现甚至可以是 ColorComparers 中的私有嵌套类。

    【讨论】:

      【解决方案3】:

      这种命名约定没有规则。当然,c# 中也有编码标准。请参考以下链接,该链接指示 Microsoft 的命名约定标准: Microsoft naming conventions

      对于您的问题回答,我建议您使用友好的名称和更方便的名称来命名课程。例如使用

      public class ColorComparer
      

      或者

      public class CompareColor
      

      使用更易于阅读和理解的名称,这也将减少您和其他开发人员的时间,并有助于降低维护成本。

      你可以进一步问我你的疑问。

      编码愉快?

      【讨论】:

        猜你喜欢
        • 2010-10-11
        • 2016-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多