Funções C#

Resumo : neste tutorial, você aprenderá como tornar seu código reutilizável usando funções C#.

Introdução às funções C#

Às vezes, você deseja executar a mesma tarefa várias vezes em um programa. Para fazer isso, você pode copiar e colar o código em vários lugares. No entanto, isso torna o programa muito difícil de manter.

Na programação, temos o princípio Don’t Repeat Yourself (DRY) . Isso significa que se você escrever as mesmas declarações repetidamente, poderá transformá-las em uma função.

Por definição, uma função é um bloco de código nomeado reutilizável que executa uma tarefa.

Por exemplo, o seguinte define a SayHi()função que envia a "Hi"mensagem para o console:

void SayHi()
{
    Console.WriteLine("Hi");
}Linguagem de código:  C#  ( cs )

Nesta função:

  • voidpalavra-chave indica que a SayHifunção não retorna um valor.
  • O SayHiidentificador é o nome da função. E você deve nomear a função da forma mais descritiva possível. Por convenção, o nome da função deve começar com um verbo (fazer algo específico).
  • Uma função pode ter zero ou mais parâmetros especificados entre parênteses após o nome da função. Neste exemplo, a SayHifunção não possui parâmetro. Abordaremos os parâmetros em breve.
  • O bloco que segue os parênteses é o corpo da função. Um corpo de função contém uma ou mais instruções.

Para usar a SayHi()função, você a chama assim:

SayHi();Linguagem de código:  C#  ( cs )

Saída:

HiLinguagem de código:  C#  ( cs )

Ao encontrar uma chamada de função, o compilador executará a instrução dentro dessa função. Neste exemplo, ele executa a instrução que gera a "Hi"mensagem.

E você pode chamar a SayHi()função quantas vezes quiser assim:

void SayHi()
{
    Console.WriteLine("Hi");
}

SayHi();
SayHi();
SayHi();Linguagem de código:  C#  ( cs )

Saída:

Hi
Hi
HiLinguagem de código:  C#  ( cs )

Passando informações para funções

Para dizer oi para alguém, você pode modificar a SayHi()função adicionando o nameparâmetro como este:

void SayHi(string name)
{
    Console.WriteLine($"Hi {name}");
}Linguagem de código:  C#  ( cs )

A nameé a entrada da SayHi()função. Tecnicamente falando, o nome é um parâmetro da SayHi()função.

Definir um parâmetro é como declarar uma variável . E você pode acessar o parâmetro como uma variável dentro da função.

Ao chamar a SayHi()função, você precisa especificar um valor para o nameparâmetro da seguinte forma:

SayHi("John");Linguagem de código:  C#  ( cs )

Saída:

Hi JohnLinguagem de código:  C#  ( cs )

Junte tudo.

void SayHi(string name)
{
    Console.WriteLine($"Hi {name}");
}

SayHi("John");Linguagem de código:  C#  ( cs )

Parâmetros vs. argumentos

Um parâmetro de função é um identificador que você especifica na definição da função, enquanto um argumento de função é um valor que você passa para a função ao chamá-la.

No exemplo anterior, the nameé um parâmetro da SayHi()função. Ao chamar a SayHi()função, você passa a string literal "John"para ela. Este valor de string é chamado de argumento.

Às vezes, você verá que os termos parâmetro e argumento são usados ​​de forma intercambiável. Mas é importante entender a diferença entre eles.

Retornando um valor

A SayHi()função não retorna nenhum valor. Portanto, você usa a voidpalavra-chave. No entanto, se uma função retornar um valor, você precisará especificar o tipo do valor de retorno.

Por exemplo, a nova SayHi()função a seguir retorna uma string:

string SayHi(string name)
{
    return $"Hi {name}";
}Linguagem de código:  C#  ( cs )

Nesta nova SayHi()função, usamos a stringpalavra-chave como tipo de retorno da função em vez de void. Além disso, usamos a returninstrução para retornar uma string.

O código a seguir chama a SayHi()função, atribui o valor de retorno à greetingvariável e o imprime:

string SayHi(string name)
{
    return $"Hi {name}";
}

string greeting = SayHi("John");
Console.WriteLine(greeting);Linguagem de código:  C#  ( cs )

Saída:

Hi JohnLinguagem de código:  C#  ( cs )

A razão pela qual retornamos uma string da SayHi()função em vez de enviá-la diretamente para o console é que queremos reutilizar a SayHi()função em outros aplicativos, como aplicativos da web, não apenas em aplicativos de console.

Documentando funções C# com comentários XML

O exemplo a seguir define a CalculateBMI()função que calcula o índice de massa corporal com base no peso em quilogramas e na altura em metros:

double CalculateBMI(double weight, double height)
{
    return weight / (height * height);
}Linguagem de código:  C#  ( cs )

Ao chamar a CalculateBMI()função, o Visual Studio (ou qualquer editor de código) mostra o cabeçalho da função:

No entanto, se quiser mostrar mais informações sobre a função, você pode adicionar comentários à função. assim:

/// <summary>
/// Calculate the body mass index (BMI) based on weight in kg and height in meter
/// </summary>
/// <param name="weight">
/// The weight in kilogram
/// </param>
/// <param name="height">
/// The height in meter
/// </param>
/// <returns>
/// The body mass index
/// </returns>
double CalculateBMI(double weight, double height)
{
    return weight / (height * height);
}Linguagem de código:  C#  ( cs )

Para criar uma seção de comentários para uma função, você insere três barras ( ///) logo antes do cabeçalho da função.

O comentário da função CalculaBMI possui três tags principais: summary, parame returns.

  • A summarytag contém a descrição da função
  • A paramtag descreve os parâmetros
  • A returnstag contém as informações do valor de retorno

Exemplo de função C#

O programa a seguir calcula o IMC e exibe o status de peso correspondente:/

/// <summary>
/// Calculate the body mass index (BMI) based on weight in kg and height in meter
/// </summary>
/// <param name="weight">
/// The weight in kilogram
/// </param>
/// <param name="height">
/// The height in meter
/// </param>
/// <returns>
/// The body mass index
/// </returns>
double CalculateBMI(double weight, double height)
{
    return weight / (height * height);
}

/// <summary>
/// Get the weight status based on the Body Mass Index (BMI)
/// </summary>
///<params name="bmi">
///The body mass index
///</params>
/// A text string that represents the weight status
///<returns>
///</returns>
string GetWeightStatus(double bmi)
{
    string weightStatus = "";

    switch (bmi)
    {
        case < 18.5:
            weightStatus = "Underweight";
            break;
        case >= 18.5 and <= 24.9:
            weightStatus = "Healthy Weight";
            break;
        case >= 25 and <= 29.9:
            weightStatus = "Overweight";
            break;
        case > 30:
            weightStatus = "Obesity";
            break;
    }
    return weightStatus;
}

// main program
Console.WriteLine("Body Mass Index (BMI) Calculation");

Console.WriteLine("Enter a weight (kg):");
var weight = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Enter a height (m):");
var height = Convert.ToDouble(Console.ReadLine());


double bmi = CalculateBMI(weight, height);
string weightStatus = GetWeightStatus(bmi);

Console.WriteLine($"BMI: {bmi:0.#}");
Console.WriteLine($"Weight status:{ weightStatus}");Linguagem de código:  C#  ( cs )

Como funciona.

Primeiro, defina a CalculateBMI()função que retorna o IMC com base no peso e na altura:

/// <summary>
/// Calculate the body mass index (BMI) based on weight in kg and height in meter
/// </summary>
/// <param name="weight">
/// The weight in kilogram
/// </param>
/// <param name="height">
/// The height in meter
/// </param>
/// <returns>
/// The body mass index
/// </returns>
double CalculateBMI(double weight, double height)
{
    return weight / (height * height);
}Linguagem de código:  C#  ( cs )

A seguir, defina a GetWeightStatus()função que retorna o status do peso com base no IMC:


/// <summary>
/// Get the weight status based on the Body Mass Index (BMI)
/// </summary>
///<params name="bmi">
///The body mass index
///</params>
/// A text string that represents the weight status
///<returns>
///</returns>
string GetWeightStatus(double bmi)
{
    string weightStatus = "";

    switch (bmi)
    {
        case < 18.5:
            weightStatus = "Underweight";
            break;
        case >= 18.5 and <= 24.9:
            weightStatus = "Healthy Weight";
            break;
        case >= 25 and <= 29.9:
            weightStatus = "Overweight";
            break;
        case > 30:
            weightStatus = "Obesity";
            break;
    }
    return weightStatus;
}Linguagem de código:  C#  ( cs )

Em seguida, solicite aos usuários que insiram a altura e o peso:


Console.WriteLine("Body Mass Index (BMI) Calculation");

Console.WriteLine("Enter a weight (kg):");
var weight = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Enter a height (m):");
var height = Convert.ToDouble(Console.ReadLine());Linguagem de código:  C#  ( cs )

Depois disso, chame a função CalculateBMI()and GetWeightStatus()para calcular o IMC e o status do peso:

double bmi = CalculateBMI(weight, height);
string weightStatus = GetWeightStatus(bmi);Linguagem de código:  C#  ( cs )

Por fim, mostre a saída:

Console.WriteLine($"BMI: {bmi:0.#}");
Console.WriteLine($"Weight status:{ weightStatus}");Linguagem de código:  C#  ( cs )

Resumo

  • Uma função é um bloco de código nomeado reutilizável que executa uma tarefa.
  • Uma função pode ter zero ou mais parâmetros e um valor de retorno opcional.
  • Use a returninstrução para retornar um valor de uma função.
  • Use comentários XML para documentar uma função.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *