C# - Métodos
Um método é um grupo de instruções que juntas executam uma tarefa. Todo programa C# tem pelo menos uma classe com um método chamado 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, você 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 -
-
Especificador de acesso − Determina a visibilidade de uma variável ou método de outra classe.
-
Tipo de retorno − 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 estiver retornando nenhum valor, o tipo de retorno será void .
-
Nome do método − O nome do método é um identificador exclusivo e diferencia maiúsculas de minúsculas. Não pode ser igual a qualquer outro identificador declarado na classe.
-
Lista de parâmetros − Entre parênteses, os parâmetros são usados para passar e receber dados de um método. A lista de parâmetros refere-se 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.
-
Corpo do método − Este contém o conjunto de instruções necessárias para completar a atividade requerida.
Exemplo
O trecho de código a seguir mostra uma função FindMax que recebe dois valores inteiros e retorna o maior dos dois. Possui 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; } ... }
Chamada de métodos em C#
Você pode chamar um método usando o nome do método. O exemplo a seguir ilustra isso -
Demonstração ao vivo
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 ao NumberManipulator class, você pode chamá-lo de outra classe Test .
Demonstração ao vivo
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 como recursão . A seguir está um exemplo que calcula fatorial para um determinado número usando uma função recursiva -
Demonstração ao vivo
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 que os parâmetros podem ser passados para um método -
Nº Sr. | Mecanismo e descrição |
---|---|
1 | Parâmetros de valor Este método copia o valor real de um argumento no parâmetro formal da função. Nesse caso, as alterações feitas no parâmetro dentro da função não têm efeito no argumento. |
2 | Parâmetros de referência Esse método copia a referência ao local de memória de um argumento no 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. |
Linguagem C