Tag: 区分大小写不区分大小写

在VB.NET中使用Dim foo As Foo有什么问题吗?

在最近的VB.NET项目中,我采用了我习惯在C#中使用的命名约定。 也就是说,经常调用与它引用的类相同的变量,只有不同的情况,例如 Foo foo = new Foo(); // C# Dim foo As New Foo() ‘ VB.NET 我发现这通常是编写代码的最清晰的方法,特别是对于小方法。 这种编码风格显然在C#中运行良好,区分大小写,并且由于Visual Studio提供的语法高亮,很容易看出类名和变量名是不同的。 然而,令我惊讶的是,在VB.NET中,这几乎在100%的时间内也能正常工作。 唯一的问题是变量名称似乎具有多重身份。 即它可以用于调用Foo类的实例方法和共享(静态)方法。 这并没有真正引起任何问题,只是意味着Intellisense会在你点击”后提供包含静态和实例方法的列表。 变量名后面。 我再次惊讶地发现,这实际上并没有导致我的项目出现任何混乱,到目前为止它已经非常成功! 但是,我是唯一一个从事这个特定​​项目的人。 这是一个稍长的例子: Dim collection as Collection = New Collection() For Each bar As Bar in Bar.All() collection.SomeInstanceMethod(bar) Next collection.SomeSharedMethod() *我发现的唯一问题是,有时候’重命名’重构工具会混淆,即重命名一个类时,它会重命名与类同名的变量,在它们的声明行中( Dim foo As… ),但不是对该变量的其他引用,导致编译器问题(duh)。 这些总是很容易纠正。 另一个小麻烦是VB.NET语法高亮显示器不会突出显示类名,而不是变量名,这使得它不如在C#中使用它时那么好。 我仍然发现代码非常易读。 还有其他人试图在团队环境中允许这个吗? 在VB.NET中这个命名约定还有其他潜在的问题吗?