C # - Métodos

Un método es un grupo de declaraciones que juntas realizan una tarea. Cada programa de C # tiene al menos una clase con un método llamado Main.

Para utilizar un método, debe:

  • 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
}

A continuación se muestran los diversos elementos de un método:

  • Access Specifier - Esto determina la visibilidad de una variable o un método de otra clase.

  • Return type- 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 retorno esvoid.

  • Method name- El nombre del método es un identificador único y distingue entre mayúsculas y minúsculas. No puede ser el mismo que cualquier otro identificador declarado en la clase.

  • Parameter list- 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 parámetros de un método. Los parámetros son opcionales; es decir, un método puede no contener parámetros.

  • Method body - 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 utilizando el nombre del método. El siguiente ejemplo ilustra esto:

using 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 se compila y ejecuta el código anterior, 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 a la clase NumberManipulator , puedes llamarlo desde otra clase Test .

using 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 se compila y ejecuta el código anterior, produce el siguiente resultado:

Max value is : 200

Llamada al método recursivo

Un método puede llamarse a sí mismo. Esto se conoce comorecursion. A continuación se muestra un ejemplo que calcula factorial para un número dado usando una función recursiva:

using 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 se compila y ejecuta el código anterior, 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 a un método con parámetros, debe pasar los parámetros al método. Hay tres formas de pasar parámetros a un método:

No Señor. 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 ningún 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 el argumento.

3 Parámetros de salida

Este método ayuda a devolver más de un valor.