【问题标题】:Coding standards for VB.NET [duplicate]VB.NET 的编码标准 [重复]
【发布时间】:2010-10-25 14:54:24
【问题描述】:

可能重复:
C# Coding standard / Best practices

您的 .NET 应用程序使用什么 VB.NET 或 C# 编码标准?

我正在查看匈牙利符号,但我认为这对于 .NET 应用程序来说不是一个好主意。

有什么建议吗?

谢谢

【问题讨论】:

  • 您是在要求多种编码标准(因为不同的人有不同的标准),还是只是想知道匈牙利表示法是否适合 .NET?
  • 这是stackoverflow.com/questions/568804/coding-standards 和其他一些的副本。
  • Microsoft 不鼓励使用匈牙利表示法,我也是。但请为您和您的团队做任何感觉最好的事情。

标签: c# .net vb.net coding-style


【解决方案1】:

如果可能,我建议遵循 Microsoft 提供的那些。它应该使您的代码和 CLR 看起来相同。

General Naming Conventions

【讨论】:

  • 它如何使您的代码表现得像 CLR?是你编的吗?
  • @klausbyskov 我猜 bechbd 的意思是看起来一样,或者感觉一样。
  • 是的,对不起,我的意思是遵循与 CLR 相同的命名标准会使您的代码具有与 CLR 相同的感觉。感谢康拉德的协助。
  • 应该是,“遵循与 BCL 相同的编码标准,而不是 CLR。​​
  • 对不起,你是对的,柯克,它应该是 BCL。我的错。
【解决方案2】:

不要使用匈牙利符号。它是一个遗物,在面向对象的语言中没有位置。

【讨论】:

  • 匈牙利符号仍然有一些用途,例如,您可以使用脏前缀和干净前缀来表示验证前后的数据,这样就不会对您正在处理的内容产生任何混淆。我 150% 同意,尽管为类型添加前缀永远不是正确的做法。
  • +1。这不值得 IMO 投反对票。
  • 否决票可以解释一下吗?如果您不同意,请添加您的想法。
  • 匈牙利符号在一个可能有多个彼此非常紧密关联但需要区分的标识符的情况下很有用。 .net 的List<T>IList<T> 的关系远比Java 的List<T>ArrayList<T> 的关系明显。同样,字段_Foo 和属性Foo 之间的关系(注意:即使人们认为语言不应该接受不同大小写的标识符相同,但这并不意味着它们也应该接受它们不同)。
【解决方案3】:

我会推荐StyleCop 作为编码标准。

【讨论】:

    【解决方案4】:

    需要遵循一些约定规则。下面是一些简单的例子:

    私人成员(字段)

    通常可以看到它们以下划线字符开头,或小 'm' 字母后跟下划线。

    C#

    private string _customerName;
    private string m_CustomerName;
    

    Visual Basic

    Private _customerName As String
    Private m_CustomerName As String
    

    最常用的方法是单个下划线字符,如每个 C# 和 VBNET 示例的第一行所示。

    方法(总是大写)

    方法的名称,为了给出一个准确的例子,反对 Java,总是大写:

    Java

    public string getString() { }
    

    .NET(C# 和 VB)

    public string GetString() { } // C#
    Public Function GetString() As String ' VB
    

    接口

    接口总是以大写的I开头。

    public interface ICustomer { }
    
    Public Interface ICustomer
    And Interface
    

    属性

    属性类应以单词Attribute 结尾。

    public class MyClassAttributeAttribute { }
    
    Public Class MyClassAttributeAttribute
    End Class
    

    这里有一些链接可以帮助您更深入地挖掘它:

    1. Guidelines for Names;
    2. C# Reference;
    3. General Naming Conventions

    希望这会有所帮助! =)

    【讨论】:

      【解决方案5】:

      .net 编码标准的非常好的参考

      http://www.amazon.com/Framework-Design-Guidelines-Conventions-Libraries/dp/0321545613

      我不同意他们的所有建议,但这是一个很好(且完整)的起点。

      匈牙利语在 .net 中绝对不好,除非您广泛使用 pinvoke 和直接 Win32 api 调用,在这种情况下,我会继续使用它,因为有很多示例代码和文档。

      我倾向于订阅编码标准的一件事是“越少越好”

      一般来说,如果它们都不能放在一张正面的纸上,那么你的“标准”可能比你们任何开发者都不会费心。

      【讨论】:

        【解决方案6】:

        使用其他人的辛勤工作来创建标准,而不是像 All-In-One Code Framework 那样创建自己的标准。

        http://1code.codeplex.com/

        我的团队曾经经历过这个兔子洞,连续几周我们遇到了试图标准化每件小事,然后发现我们已经筋疲力尽,不得不考虑在环境/语言发生变化时再次这样做。

        无需重新发明轮子。 All-In-One Code Framework 有解释、VB.Net、C#、C++ 中的示例,并且是开源的,并且一直保持最新状态。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-07
          • 1970-01-01
          • 1970-01-01
          • 2020-09-05
          相关资源
          最近更新 更多