If `first` and `current` refer to the same Player, both paths reach the same `NumberOfTurns` field. The field belongs to the Player object.
There are two reference variables, but only one Player and one `NumberOfTurns` field. The value is not copied into `first` and `current` separately.
Now `current` can receive a new Player:
current = new Player();
current.NumberOfTurns = 5;`first.NumberOfTurns` remains `1`; `current.NumberOfTurns` is `5`. Each variable now reaches a different object.