A UML method signature places its return type after the closing parenthesis. When a method returns a Player reference, the return type is `Player`.
A Game class may show:
+ GetCurrentPlayer(): PlayerThe colon and `Player` say that the caller receives a Player reference. The empty parentheses say that this method has no parameters.
The C# method starts with:
public Player GetCurrentPlayer()C# puts the return type before the method name; UML puts it after the parameter list. Both signatures describe the same return type.
A method that returns the Game's existing `CurrentPlayer` and a method that returns `new Player()` both have return type Player. The method body determines whether the returned object already existed.
A method such as `RecordTurn(participant: Player): void` takes a Player reference but returns no value. Its input type and return type answer different questions.