Depende del contexto creo... Si un input va a cambiar de valor lo mรกs prolijo creo que es un out parameter, como los tryParse.
Si no va a ser algo reiterativo y tรบ versiรณn de c# lo permite, una tupla con nombres. Otro caso, una clase, sea temporal o no, como en un ResultPattern.