Bom, o Guilherme para realizar a atribuição do ToUpperCase sobre o argumento declara uma nova variável: string argumentoEmCaixaAlta = argumentos.ToUpper();
. Mas será que é realmente necessária essa nova declaração? Pelo que me parece, a string "argumentos" ela só é usada para que os métodos IndexOf() e Substring() possam ser utilizados, visto que não há nenhuma atribuição de valor pra ela.