1
19
我认为您正在描述的解决方案,其中构造函数参数的名称相同,并且您在类成员前面加上前缀
|
2
5
我只是简单地使用
|
3
3
|
4
2
简短答复:
成员
参数
有“
不要装饰 或 ,当您觉得必须将它们命名为相同的名称(忽略大小写)时,请通过在属性前面加上“this”来解决冲突。 说明:考虑到至少有四(4)个不同类别的可读/可分配的名称需要区分: 局部变量 , ,和方法 参数 . 所有四个类别都可能出现在一个代码块中,因此它们都需要明确的区别特征。 有意义的前缀可以同时区分变量 和 揭示它们的作用域,如m_u(member)、s_u(static)、p_u(parameter),使公共属性和局部变量保持简单,无需前缀,也无需担心大小写敏感性。如果出于某种原因,您必须在不考虑大小写的情况下将本地名称命名为与属性相同的名称,那么只需在属性前面加上“this” 局部变量 参数 不发生,因为它们不能被命名为相同的东西(编译器将捕获重复的定义)。同样的道理也适用于 和 . 分别以“p_”和“m_”前缀的参数和成员不会冲突,无前缀局部变量和属性之间的冲突可以通过在属性中添加“this.”来解决。 我的建议的替代方案并不漂亮:区分大小写(不好的主意,因为并非所有CLR语言都区分大小写),自己使用下划线(也不好,因为它可能会与标准冲突,不会告诉你一件该死的事情),或者使用不同的名称(可能很耗时、很难,而且看起来很随意)。 |
5
0
为什么不为私有成员变量添加下划线或单字母前缀呢。 如果您不喜欢这个想法,那么您在第二个代码块中所做的就可以了。 |
6
0
像那样在参数上加X是不好的。构造函数是类的公共接口的一部分,它只会混淆类的用户。有些人喜欢在成员变量前面加下划线,这样更好,因为只有类的实现者才能看到。否则,在第二个示例中使用这个就足够了。 |
7
0
我更喜欢区分块范围和扩展范围成员,这就是我坚持使用前缀的原因。 |
8
-1
我还觉得“this.”实际上更糟糕,因为在极端情况下(即大型方法),可能会忽略“this.”,引用错误的变量。我知道大型方法是不好的,但它们确实会自然地出现在具有不同技能的开发人员的实际业务应用程序中。为私有字段使用前缀将防止出现这种情况。 人们很容易辩称,下划线可能会像“this”一样被遗忘。但这是不正确的,因为下划线更改了变量的名称,所以唯一可能忘记它的地方是定义,而不是文件中的用法。而使用“this.”前缀时,若您在使用过程中忘记了它,则不会出现编译器错误。
|
Selam S · 重命名Clojure的特殊形式 7 年前 |
Trav Easton · 过滤器命名约定 7 年前 |
radbyx Matt · 样式和事件的CSS类的命名约定是什么? 7 年前 |