En un debate sobre las variables de retorno, algunos miembros del equipo prefieren un método para devolver el resultado directamente a la persona que llama, mientras que otros prefieren declarar una variable de retorno que luego se devuelve a la persona que llama (ver ejemplos de código a continuación)
El argumento a favor de este último es que permite que un desarrollador que está depurando el código encuentre el valor de retorno del método antes de que vuelva a la persona que llama, lo que hace que el código sea más fácil de entender: esto es especialmente cierto cuando las llamadas a métodos están conectadas en cadena.
¿Hay alguna guía sobre cuál es la más eficiente y / o hay alguna otra razón por la que deberíamos adoptar un estilo sobre otro?
Gracias
private bool Is2(int a)
{
return a == 2;
}
private bool Is3(int a)
{
var result = a == 3;
return result;
}
stloc.0
y ldloc.0
en la segunda versión). Pero creo que eso sucede solo en modo de depuración. Y no es realmente importante aquí de todos modos.
a = b = c;
y a == b == c
evitaría escribir algo que se parezca a = b == c
si puedes. Cuando vi por primera vez una línea de código como esa, me tomó unos segundos descubrir qué está pasando. Ese código se destacó. Me gustaría poner un paréntesis a == 3
, pero StyleCop no le gusta, una buena razón para usar la versión número uno. Algo más: esto es esencialmente una lambda, como a => (a == 3)
. ¿Por qué agregar una línea de código a una función trivial ya hinchada?
result
antes de devolverlo.