【问题标题】: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 时传递实例,这也是令人困惑和愚蠢的。

标签: c# coding-style this


【解决方案1】:

我每次引用实例变量时都会使用它,即使我不需要。我认为它使代码更清晰。

【讨论】:

  • 我想尽可能地区分类变量,所以代码更清晰。我曾经使用前缀 m_ (成员变量),例如私有字符串 m_name。现在我只使用这个,例如如果我有类 Test { private string a; public someMethod() { this.a = "foo"; } }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
相关资源
最近更新 更多