Primero, repasemos un par de ejemplos de parámetros posicionales y analicemos por qué la posición de los parámetros de la función importa.
Ejemplo 1
Consideremos el siguiente código, que calcula el volumen de un cubo cuando se proporciona la longitud del borde (lado).
1234567double CalculaVolumenCubo(doble borde) { return Math.Pow(edge,3);}double Volume = calculateVolumeCube(5);Console.WriteLine($"Volume: {Volume:N2}");// La respuesta es Volume: 125.00
C#
Ejemplo 2
Tomemos otro ejemplo de cálculo de un volumen, pero esta vez estamos calculando el volumen de un cilindro.
1234567double CalculaVolumenCilindro(doble radio, doble altura) { return Math.PI*Math.Pow(radius,2)*height;}double Volume = calculateVolumeCylinder(2,4);Console.WriteLine($"Volume: {Volume:N2}");// La respuesta es Volume: 50.27
C#
La función anterior toma el radio y la altura como parámetros y devuelve el volumen del cilindro. Cuando proporcionamos el radio como 2 y la altura como 4, obtenemos el volumen como 50,27 (redondeado a dos decimales). Estos se denominan parámetros posicionales , ya que el orden en que se proporcionan los argumentos es importante.
Para una mayor perspectiva, revise el código que aparece a continuación:
123456double CalculaVolumenCilindro(doble altura, doble radio) { return Math.PI*Math.Pow(radius,2)*height;}double Volume = calculateVolumeCylinder(2,4);Console.WriteLine($"Volume: {Volume:N2}");
C#
¿Cuál crees que sería la respuesta? ¿Será la misma que el volumen: 50.27?
1// La respuesta es Volumen: 100.53
Puede que no esperes esta respuesta, pero si observamos de cerca la definición de la función, podemos ver que el primer parámetro es la altura y no el radio.
Típicamente, los programadores pierden mucho tiempo depurando este tipo de código porque no proporciona una excepción de tiempo de ejecución o de tiempo de compilación. La función anterior contenía sólo dos parámetros, pero imagina un escenario en el que tenemos una función con cuatro, cinco o más parámetros. En este caso, debes asegurarte de que revisas la definición de la función cuidadosamente cada vez que pases argumentos.