你啥时候使用“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` 关键字? [关闭]

JAVA中this的三种用法的详解

你啥时候使用 java.util.LinkedList [重复]

你啥时候使用“受保护的内部”访问修饰符?