我应该使用“this”来调用类属性、成员还是方法?

2022-09-03 09:55:49

我看过一些指南或博客,说使用访问班级自己的成员是不好的。但是,我也看到过一些专业人士使用.我倾向于明确使用 ,因为它似乎清楚地表明我正在访问的内容是类的一部分。thisthisthis

this.MyProperty = this.GetSomeValue();

使用是否有一些优点或缺点?这仅仅是一种风格偏好吗?this


答案 1

如果它增加了代码的清晰度,请使用它,如果它没有。有几个地方它确实增加了清晰度 - 例如在C++:

struct Point {
   int x, y;
   Point & operator=( const Point & p ) {
      this->x = p.x;
      this->y = p.y;
      return *this;
   }
};

在这种情况下,当你有两个相同类型的对象可以参考时,我发现使用可以澄清一些事情(尽管请注意,C++上面的赋值运算符实现是不必要的)。this


答案 2

我总是使用,因为它使代码在我看来更具可读性。它立即清楚地表明this.

  • 它是此实例的成员。
  • 阐明基类是调用 () 还是重写成员 (base.this.)
  • 它不是静态成员。
  • 它不是对另一个静态类 ( vs ) 的成员的调用。this.Monster.Legs.Run();Monster.Legs.Run();