C # - Métodos

Um método é um grupo de instruções que, juntas, executam uma tarefa. Cada programa C # tem pelo menos uma classe com um método denominado Main.

Para usar um método, você precisa -

  • Defina o método
  • Chame o método

Definindo métodos em C #

Quando você define um método, basicamente declara os elementos de sua estrutura. A sintaxe para definir um método em C # é a seguinte -

<Access Specifier> <Return Type> <Method Name>(Parameter List) {
   Method Body
}

A seguir estão os vários elementos de um método -

  • Access Specifier - Isso determina a visibilidade de uma variável ou método de outra classe.

  • Return type- Um método pode retornar um valor. O tipo de retorno é o tipo de dados do valor que o método retorna. Se o método não está retornando nenhum valor, o tipo de retorno évoid.

  • Method name- O nome do método é um identificador exclusivo e faz distinção entre maiúsculas e minúsculas. Não pode ser igual a qualquer outro identificador declarado na classe.

  • Parameter list- Entre parênteses, os parâmetros são usados ​​para passar e receber dados de um método. A lista de parâmetros se refere ao tipo, ordem e número dos parâmetros de um método. Os parâmetros são opcionais; ou seja, um método pode não conter parâmetros.

  • Method body - Contém o conjunto de instruções necessárias para concluir a atividade necessária.

Exemplo

O trecho de código a seguir mostra uma função FindMax que recebe dois valores inteiros e retorna o maior dos dois. Ele tem um especificador de acesso público, portanto, pode ser acessado de fora da classe usando uma instância da classe.

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 chamada em C #

Você pode chamar um método usando o nome do método. O exemplo a seguir ilustra isso -

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();
      }
   }
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Max value is : 200

Você também pode chamar o método público de outras classes usando a instância da classe. Por exemplo, o método FindMax pertence à classe NumberManipulator , você pode chamá-lo de outra classe 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();
      }
   }
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Max value is : 200

Chamada de Método Recursivo

Um método pode chamar a si mesmo. Isso é conhecido comorecursion. A seguir está um exemplo que calcula o fatorial para um determinado número usando uma função 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();
      }
   }
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Factorial of 6 is: 720
Factorial of 7 is: 5040
Factorial of 8 is: 40320

Passando Parâmetros para um Método

Quando o método com parâmetros é chamado, você precisa passar os parâmetros para o método. Existem três maneiras de passar parâmetros para um método -

Sr. Não. Mecanismo e descrição
1 Parâmetros de valor

Este método copia o valor real de um argumento para o parâmetro formal da função. Nesse caso, as alterações feitas no parâmetro dentro da função não afetam o argumento.

2 Parâmetros de referência

Este método copia a referência ao local da memória de um argumento para o parâmetro formal. Isso significa que as alterações feitas no parâmetro afetam o argumento.

3 Parâmetros de saída

Este método ajuda a retornar mais de um valor.