Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Classe Regex

Por que não usou Console.WriteLine(Regex.Match(textoDeTeste, padrao)); ao invés de Match resultado = Regex.Match(textoDeTeste, padrao); Console.WriteLine(resultado.Value); ?

2 respostas
solução!

Oi, Roberta. Tudo bom?

Ficar encadeando resultado de chamada de método em argumento de outra chamada de método tende ao caos.

Na maioria dos casos, é preferível usar uma variável para guardar o resultado de uma chamada e então usar esta variável como argumento da próxima chamada:

Match resultado = Regex.Match(textoDeTeste, padrao); 
Console.WriteLine(resultado.Value);

Além disso, usei a propriedade Value para mostrar esta propriedade da classe Match. Quando você chama o WriteLine com um objeto diferente de string/int/double/float/etc. o método chama o ToString e, no caso, resultado.ToString() retorna a propriedade Value.

De qualquer modo, eu tenho a tendência a utilizar sempre a propriedade, porque deixo bastante explícito no código o que estou fazendo: estou utilizando a propriedade Value.

Usar apenas Match obriga o eu do futuro lembrar que o ToString retorna Value e obriga as outras pessoas que trabalham comigo saberem disso e não pensarem que foi um erro no meu código.

O que você acha?

Ótimo! É porque em geral em suas aulas você mostra alguma forma de fazer e em seguida mostra uma outra forma melhor, ou por convenção ou por ser a melhor prática. Obrigada!