C# - Métodos
Un método es un grupo de sentencias que juntas realizan una tarea. Cada programa C# tiene al menos una clase con un método llamado Main.
Para usar un método, necesita −
- Definir el método
- Llamar al método
Definición de métodos en C#
Cuando define un método, básicamente declara los elementos de su estructura. La sintaxis para definir un método en C# es la siguiente −
<Access Specifier> <Return Type> <Method Name>(Parameter List) { Method Body }
Los siguientes son los diversos elementos de un método −
-
Especificador de acceso − Esto determina la visibilidad de una variable o un método de otra clase.
-
Tipo de retorno − Un método puede devolver un valor. El tipo de retorno es el tipo de datos del valor que devuelve el método. Si el método no devuelve ningún valor, entonces el tipo de devolución es void .
-
Nombre del método − El nombre del método es un identificador único y distingue entre mayúsculas y minúsculas. No puede ser igual a ningún otro identificador declarado en la clase.
-
Lista de parámetros − Entre paréntesis, los parámetros se utilizan para pasar y recibir datos de un método. La lista de parámetros se refiere al tipo, orden y número de los parámetros de un método. Los parámetros son opcionales; es decir, un método puede no contener parámetros.
-
Cuerpo del método − Contiene el conjunto de instrucciones necesarias para completar la actividad requerida.
Ejemplo
El siguiente fragmento de código muestra una función FindMax que toma dos valores enteros y devuelve el mayor de los dos. Tiene un especificador de acceso público, por lo que se puede acceder desde fuera de la clase utilizando una instancia de la clase.
class NumberManipulator { public int FindMax(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; } ... }
Métodos de llamada en C#
Puede llamar a un método usando el nombre del método. El siguiente ejemplo ilustra esto −
Demostración en vivousing System; namespace CalculatorApplication { class NumberManipulator { public int FindMax(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; } static void Main(string[] args) { /* local variable definition */ int a = 100; int b = 200; int ret; NumberManipulator n = new NumberManipulator(); //calling the FindMax method ret = n.FindMax(a, b); Console.WriteLine("Max value is : {0}", ret ); Console.ReadLine(); } } }
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −
Max value is : 200
También puede llamar al método público desde otras clases utilizando la instancia de la clase. Por ejemplo, el método FindMax pertenece al NumberManipulator clase, puede llamarlo desde otra clase Prueba .
Demostración en vivousing System; namespace CalculatorApplication { class NumberManipulator { public int FindMax(int num1, int num2) { /* local variable declaration */ int result; if(num1 > num2) result = num1; else result = num2; return result; } } class Test { static void Main(string[] args) { /* local variable definition */ int a = 100; int b = 200; int ret; NumberManipulator n = new NumberManipulator(); //calling the FindMax method ret = n.FindMax(a, b); Console.WriteLine("Max value is : {0}", ret ); Console.ReadLine(); } } }
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −
Max value is : 200
Llamada de método recursivo
Un método puede llamarse a sí mismo. Esto se conoce como recursión . El siguiente es un ejemplo que calcula factorial para un número dado usando una función recursiva −
Demostración en vivousing System; namespace CalculatorApplication { class NumberManipulator { public int factorial(int num) { /* local variable declaration */ int result; if (num == 1) { return 1; } else { result = factorial(num - 1) * num; return result; } } static void Main(string[] args) { NumberManipulator n = new NumberManipulator(); //calling the factorial method {0}", n.factorial(6)); Console.WriteLine("Factorial of 7 is : {0}", n.factorial(7)); Console.WriteLine("Factorial of 8 is : {0}", n.factorial(8)); Console.ReadLine(); } } }
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −
Factorial of 6 is: 720 Factorial of 7 is: 5040 Factorial of 8 is: 40320
Pasar parámetros a un método
Cuando se llama al método con parámetros, debe pasar los parámetros al método. Hay tres formas en que los parámetros se pueden pasar a un método:
Sr.No. | Mecanismo y descripción |
---|---|
1 | Parámetros de valor Este método copia el valor real de un argumento en el parámetro formal de la función. En este caso, los cambios realizados en el parámetro dentro de la función no tienen efecto en el argumento.
|
2 | Parámetros de referencia Este método copia la referencia a la ubicación de memoria de un argumento en el parámetro formal. Esto significa que los cambios realizados en el parámetro afectan al argumento.
|
3 | Parámetros de salida Este método ayuda a devolver más de un valor.
|
Lenguaje C