你啥时候使用“this”关键字? [关闭]
Posted
技术标签:
【中文标题】你啥时候使用“this”关键字? [关闭]【英文标题】:When do you use the "this" keyword? [closed]你什么时候使用“this”关键字? [关闭] 【发布时间】:2010-09-06 14:23:03 【问题描述】:我很好奇其他人如何使用 this 关键字。我倾向于在构造函数中使用它,但我也可以在整个类中的其他方法中使用它。一些例子:
在构造函数中:
public Light(Vector v)
this.dir = new Vector(v);
其他地方
public void SomeMethod()
Vector vec = new Vector();
double d = (vec * vec) - (this.radius * this.radius);
【问题讨论】:
当您真正需要this
在 MSDN 时,我找到了很好的例子。请关注this link ... ;-)
如果您必须理解和优化或重写其他人,大部分是写得不好的代码,您会很高兴拥有this
或任何其他限定符,以便从简单的外观您知道变量的范围(特别是省略了常量的类限定符(相同的包或层次结构)或super
/base
限定符)。而且使用像_foo
这样的常用语法对我来说似乎并不优雅。按_
进行智能感知比输入this
更耗时。为什么要打扰!使用 Eclipse 自动保存格式化功能,如果您忘记了限定符,则无需 _
。
在阅读了下面的答案和 cmets,以及阅读了 MSDN 文档:docs.microsoft.com/en-us/previous-versions/visualstudio/… 关于 6 年未更新的 this 关键字后,我会建议永远不要使用 this 关键字。没有用。不要使参数同名,这会令人困惑和愚蠢。为什么要这么做?另外,不要在使用 this 时传递实例,这也是令人困惑和愚蠢的。
【参考方案1】:
我每次引用实例变量时都会使用它,即使我不需要。我认为它使代码更清晰。
【讨论】:
我想尽可能地区分类变量,所以代码更清晰。我曾经使用前缀 m_ (成员变量),例如私有字符串 m_name。现在我只使用这个,例如如果我有类 Test private string a; public someMethod() this.a = "foo";以上是关于你啥时候使用“this”关键字? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
你啥时候需要在 Perl 中 `END close STDOUT`?
如何避免 Javascript 中的 `this` 和 `new` 关键字? [关闭]