我来自C ++,与C#相比,this
通常很少使用。根据我的经验,this
的使用严格限于范围和/或名称解析。
我有同事坚持认为在任何地方使用this
会使代码“更加清晰”。它们基本上依赖于它来进行记录。我不同意这种用法,因为就文档而言,它是非常主观的,冗余的,实际上没用。
在某些情况下,我会看到this.myClassVariable = 100;
。在这种情况下,this
除了(根据我的同事)之外没有任何实际用途,以明确myClassVariable
不是静态的。这只是一个例子。
就个人而言,如果没有含糊之处,我会使用myClassVariable = 100;
。这个更清楚,我老实说,如果您的变量命名良好,代码将自我记录并且不需要“此”。
使用'this'的一般经验法则是什么?我要求超出明显要求的用例(例如解决歧义)。在某些情况下,编译代码需要this
的使用,我不一定对这些情况感兴趣。您如何使用this
进行文档处理?
答案 0 :(得分:2)
如果他们想区分静态变量和私有实例变量,为什么不使用命名约定来区分这两者,而不是要求this
?例如,对于私有实例变量,使用下划线为它们添加前缀,并使用camel case命名它们(例如_myVariable
)。然后,对于静态变量,使用没有前缀的Pascal大小写(例如MyStaticVariable
)。它允许在静态变量和实例变量之间进行简单的消歧,并且不需要this
所需的额外键击和一般“丑陋”。
答案 1 :(得分:2)
我个人强烈反对这种用法。使重构变得非常困难 - 如果要将变量更改为静态变量或本地变量,则必须遍历所有使用点并删除this.
。
这种用法可能是由PHP或Python推动的,但这是必须的。