问题:关于声明变量的VB.net编码标准

时间:2008-12-02 18:54:34

标签: vb.net

我在VB.net中看到过一些变量声明,如:

print("dim _Foo as string");

和     print(“dim m_Foo as string”); 和     print(“dim foo as string”);

我想知道VB.net编码的标准是什么。

4 个答案:

答案 0 :(得分:2)

这一切都取决于范围。在以下情况下:

Private Dim m_Foo As String

这意味着m_Foo是一个类的成员。这也意味着同样的事情:

Private Dim _Foo As String

这是一个偏好的问题。

另一方面,这样的事情:

Dim Foo As String

可能引用给定方法的局部变量。有些人甚至可能在前面加上“l _”:

Dim l_Foo As String

这些示例的声明有助于确定扫描代码时的范围。总而言之,这是一个示例类,显示了一个众所周知的命名约定(但不是唯一的):

Public Class Bar
    Private m_firstName As String

    Public Sub New(ByVal firstName As String)
        m_firstName = firstName
    End Sub

    Public Function SayGreeting() As String
        Dim l_Greeting As String
        l_Greeting = String.Format("{0}, {1}!", "Hello", m_firstName)
        Return l_Greeting
    End Function
End Class

答案 1 :(得分:1)

对成员变量使用“m_Name”是VB中的标准。我几乎从未遇到过那种不这样做的人。

许多(但不是全部)对共享变量使用“s_Name”。这清楚地表明了变量的使用方式。

对于局部变量,我使用“name”。为什么?一个参数本质上是一个局部变量,它使用该模式(根据.NET指南),那么为什么不让所有局部变量看起来那样呢?

答案 2 :(得分:1)

我不同意,我看过许多用于为类变量加前缀的方法,包括“m”,“m_”和_。

我有一种完全不同的方法,对我有好处。我创建了一个名为backingStore的结构,它包含我的类变量,然后我有一个名为Local的私有变量作为新的backingStore。

这允许我为属性和类变量使用相同的名称,并且在引用它时,我非常清楚我正在谈论哪一个。恩。

Local.FirstName =“Fred”

请参阅此处的完整示例

Design Lunacy: Pain in the m_#$*^

答案 3 :(得分:0)

这实际上取决于您工作环境中商定的命名约定。肯定有可用的指南:Naming Conventions for .NET / C# Projects - 这基本上就是我们所遵循的。

例如:

_member //Class member - Camel Case
intLocalVariable //note use of Hungarian notation - Camel Case
pMethodParameter //Camel Case
MyProperty //Pascal Case