你使用什么分类变量?

时间:2012-02-02 12:14:55

标签: java .net eclipse visual-studio-2010

我在旧代码变量中看到了用其数据类型编写的变量:

double dblMyVar;
int intYourVar;
String strTheirVar;

但是,如今,它似乎是老式的。这种方法的优点是,您可以在任何地方立即查看某个变量的类型。但我不喜欢长变量名。每当我可以在一个char中命名我的变量,例如:

   private Product p = new Product();

有一个现代的“良好实践”或命名变量的约定?您/贵公司使用了什么?

6 个答案:

答案 0 :(得分:2)

如有疑问,请参阅Java语言规范(JLS)。以下是关于Naming Conventions的部分。

答案 1 :(得分:1)

// class member only if needed
private Product product;
// instantiates before using it
product = new Product();

在名称中声明变量类型是非常没用的,因为IDE会在鼠标悬停时向您显示其类型。但是,对于其他开发人员来说,使用单个字符名称可能会非常混乱(特别是如果您有大量变量)并违反自我记录原则。

答案 2 :(得分:1)

这种表示法称为“匈牙利语”并由Microsoft推广,如果适用于您,请使用它:http://en.wikipedia.org/wiki/Hungarian_notation

答案 3 :(得分:1)

这取决于语言。

关于C#:

  • 由于它是强类型语言,因此不建议将变量的类型添加为变量名称的前缀(匈牙利表示法)(冗长冗长和冗余信息)
  • 以大写形式公开的起始变量名称是约定(例如MyVariable): pascal case
  • 使用小写字母(或下划线然后是小写字母)私有的起始变量名称也是一种约定。是否使用下划线是个人偏好的问题(例如:_myVariablemyVariable):骆驼案例
  • 使用单个字母(ijz ...)命名临时变量(例如for循环中使用的变量)通常是正常的,如果用法是仅限于小范围。

但这完全取决于个人喜好。

在MSDN上编辑:General Naming Conventions

答案 4 :(得分:0)

y_xName,y是本地/成员/参数/静态的l / m / p / s。 x可以是i用于int,f用于float,p用于指针等等。也许是sp用于共享指针..对于大多数类型的对象/引用来说很少有任何东西..我更喜欢代码是自我解释的,因此没有像“只是”的名字p“或”m_p“。说出它是什么。如果它是一个简短的片段,它实际上只是某种类型的通用“产品”,我可能会将其命名为l_Product。我认为制作微小的代码毫无意义,即使你试图保持76(?)字符的行宽,在正确的位置打破行,然后缩进可以使它看起来不错,你仍然可以看到详细的名称是什么实际上正在发生。

嗯,这只是我对它的看法..

答案 5 :(得分:0)

你唯一应该使用"单字母变量"在一段非常短的代码中,例如" foreach(var i in item)"或"使用(var p = new Product())"。当然,这取决于您自己的偏好,但是Visual Studio的一个非常漂亮的小插件名为StyleCop。它对几乎所有东西都进行了大量的样式检查,再加上ReSharper,它可以实时完成,甚至可以为你解决问题。