我在VB.net中看到过一些变量声明,如:
print("dim _Foo as string");
和 print(“dim m_Foo as string”); 和 print(“dim foo as string”);
我想知道VB.net编码的标准是什么。
答案 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”
请参阅此处的完整示例
答案 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