Inside an instance method, `this` refers to the object that received that method call. The receiver may be reached through any reference to that object.
Suppose `first` and `active` both refer to the same Player. These two calls have the same receiver:
first.TakeTurn();
active.TakeTurn();Inside each call, `this` refers to that one Player. If `TakeTurn` increments `this.NumberOfTurns`, the Player's count increases twice.
The code inside `TakeTurn` does not need to know whether the caller used `first` or `active`. It operates on the Player that received the call.
After `active` is assigned a reference to a second Player, `active.TakeTurn()` runs with the second Player as `this`. The first Player retains its earlier count.
The receiver determines `this` for that invocation. A later call can use another receiver, even though the same method definition runs.