C#中'this'的主观用法

时间:2011-05-31 15:11:53

标签: c# documentation this

我来自C ++,与C#相比,this通常很少使用。根据我的经验,this的使用严格限于范围和/或名称解析。

我有同事坚持认为在任何地方使用this会使代码“更加清晰”。它们基本上依赖于它来进行记录。我不同意这种用法,因为就文档而言,它是非常主观的,冗余的,实际上没用。

在某些情况下,我会看到this.myClassVariable = 100;。在这种情况下,this除了(根据我的同事)之外没有任何实际用途,以明确myClassVariable不是静态的。这只是一个例子。

就个人而言,如果没有含糊之处,我会使用myClassVariable = 100;。这个更清楚,我老实说,如果您的变量命名良好,代码将自我记录并且不需要“此”。

使用'this'的一般经验法则是什么?我要求超出明显要求的用例(例如解决歧义)。在某些情况下,编译代码需要this的使用,我不一定对这些情况感兴趣。您如何使用this进行文档处理?

2 个答案:

答案 0 :(得分:2)

如果他们想区分静态变量和私有实例变量,为什么不使用命名约定来区分这两者,而不是要求this?例如,对于私有实例变量,使用下划线为它们添加前缀,并使用camel case命名它们(例如_myVariable)。然后,对于静态变量,使用没有前缀的Pascal大小写(例如MyStaticVariable)。它允许在静态变量和实例变量之间进行简单的消歧,并且不需要this所需的额外键击和一般“丑陋”。

答案 1 :(得分:2)

我个人强烈反对这种用法。使重构变得非常困难 - 如果要将变量更改为静态变量或本地变量,则必须遍历所有使用点并删除this.

这种用法可能是由PHP或Python推动的,但这是必须的。