Answers:
在符号上添加有意义的前缀(例如广为人知的匈牙利符号)的做法可以追溯到IDE不存在或过于原始的时代。如今,只需单击鼠标,即可找到声明的要点,没有必要通过分配公共前缀来破坏名称的最宝贵部分(其前几个字母)。
struct
/中,union
并带有一个元素。
您怀疑,这是为了避免参数名称与成员或局部变量名称之间的名称冲突。出于相同的原因,有时会给成员变量一个前缀(例如m_result
)。就个人而言,this
如果发生名称冲突,我更喜欢仅对成员变量使用前缀。它内置于语言中,每个人都已经知道它的含义了。
仅当要将参数分配给成员变量(例如构造函数或setter)时,才使用参数前缀。
Paint (newColor) {
color = newColor;
}
对我来说,我发现使用不同的变量名比使用“ this”前缀更明显。
对于其他情况,我避免使用容易与成员变量混淆的参数。
如果一个方法或类太大而很难说出变量的含义,那么真正的解决方案就是将其分解为较小的方法/类。使用前缀是一个创可贴解决方案,它确实解决了根本问题。
Paint (clr) { color = clr; }
)。... 通常没有多少歧义,尽管color -> clr
尤其可能是例外。
如果您为每个方法参数名称使用“ p”作为前缀制定了标准,则可以轻松地在方法主体的其余部分识别方法参数。
这样可以节省您查找方法参数的时间。您可以轻松调试代码。
简短-这种做法使代码更难阅读。
长-我认为这是一种不良做法,仅用于支持其他不良做法。让我们研究一下使用这样的前缀可能被认为有帮助的几个原因:
避免变量名冲突
public void setHeight(int newHeight) { this.height = newHeight; }
方法有很多参数,声明了很多变量,我们很容易忘记哪个是参数。
除某些特定情况外,添加参数前缀仅有助于缓解症状,无法解决实际问题。