En algunas situaciones utilizando C/C++, que puede indicar sintácticamente al compilador que una returnvalue se ignora deliberadamente:C# - Cómo indicar cuando se ignoran deliberadamente un valor de retorno
int SomeOperation()
{
// Do the operation
return report_id;
}
int main()
{
// We execute the operation, but in this particular context we
// have no use of the report id returned.
(void)SomeOperation();
}
me parece que se trata de una feria la práctica, en primer lugar porque la mayoría de los compiladores no generarán una advertencia aquí, y en segundo lugar porque muestra explícitamente a los futuros desarrolladores que el autor hizo una elección consciente para ignorar el retorno. Hace que el rastro de pensamiento del autor no sea ambiguo.
Hasta donde yo sé, el compilador de C# no se quejará de los valores de retorno ignorados implícitamente, pero me gustaría saber si hay una convención similar para usar con el fin de hacer una indicación clara a otros desarrolladores.
EDIT:
En respuesta a algunas personas aquí que cuestiona el uso real de esta convención (o que sería una muestra de un mal diseño disponer de un método con un valor de retorno potencialmente importante).
Un ejemplo .NET vida real (que tal vez debería haber basado la cuestión desde el comienzo) es el objeto mutex :: WaitOne() contra la sobrecarga que no tiene argumentos. Solo volverá si el mutex se adquirió de forma segura, de lo contrario nunca volverá. El valor de retorno booleano es para las otras sobrecargas en las que puede terminar no estando en posesión del mutex cuando regresa.
Así lo largo de mi razonamiento, me gustaría indicar en mi código multi-hilo que he tomado la decisión de ignorar el retorno:
Mutex mtx = new Mutex();
(void)mtx.WaitOne();
Desde el returnvalue nunca puede ser otra cosa que 'verdadero'.
Sin embargo existe y la sobrecarga de WaitOne que tiene un parámetro de tiempo de espera y que ca return false cuando el tiempo expira. –
@Pop: ese es el punto de mi argumento. Quizás lo leíste mal. – sharkin
@ R.A. ya que no está utilizando el valor de retorno (que siempre es cierto), eso significa que lo está ignorando, pero no hay convención para decir "lo estoy ignorando a propósito", también en su ejemplo el valor de retorno siempre puede ser ignorado por diseño, por lo que no se necesita una explicación adicional. –