Exploring C#’s ref return to better understand it