Ocasionalmente, encontro métodos onde um desenvolvedor optou por retornar algo que não é crítico para a função. Quero dizer, ao olhar para o código, aparentemente funciona tão bem quanto um voide depois de um momento de reflexão, pergunto "Por quê?" Isso soa familiar?
Às vezes, eu concordo que na maioria das vezes é melhor retornar algo como a boolou int, em vez disso, basta fazer a void. Não tenho certeza, no geral, sobre os prós e contras.
Dependendo da situação, retornar um intpode informar o chamador da quantidade de linhas ou objetos afetados pelo método (por exemplo, 5 registros salvos no MSSQL). Se um método como "InsertSomething" retornar um valor booleano, posso ter o método projetado para retornar truese for bem-sucedido false. O chamador pode optar por agir ou não nessas informações.
Por outro lado,
- Isso pode levar a um objetivo menos claro de uma chamada de método? A má codificação geralmente me obriga a verificar novamente o conteúdo do método. Se retornar algo, informará que o método é do tipo que você precisa fazer com o resultado retornado.
- Outra questão seria, se a implementação do método é desconhecida para você, o que o desenvolvedor decidiu retornar que não é essencial para a função? Claro que você pode comentar.
- O valor de retorno deve ser processado, quando o processamento puder ser finalizado no colchete de fechamento do método.
- O que acontece sob o capô? O método chamado foi causado
falsepor um erro gerado? Ou retornou falso devido ao resultado avaliado?
Quais são suas experiências com isso? Como você agiria sobre isso?
voidpelo menos permite que o desenvolvedor saiba que o valor de retorno do método é inconseqüente; faz uma ação, em vez de calcular um valor.