TOC

This article has been localized into Portuguese by the community.

O básico:

Funções

Uma função te deixa encapsular um pedaço de código e usá-lo de outras partes de seu código. Você provavelmente daqui a pouco vai estar numa situação onde você precise repetir uma parte do código, em vários lugares. É neste caso que as funções entram. No C#, elas são declaradas basicamente assim:

<visibility> <return type> <name>(<parameters>)
{
<function code>
}

Para usar uma função, simplesmente escreva seu nome, um abre parêntese, os parâmetros (se houver), e então um fecha parêntese, deste jeito:

DoStuff();

Aqui há um exemplo da nossa função DoStuff():

public void DoStuff()
{
    Console.WriteLine("I'm doing something...");
}

A primeira parte ''public'', é a visibilidade, e é opcional. Se você não definir nenhuma, a função vai ser privada (private). Tem mais informação sobre isso depois. Depois vem o tipo do return. Pode ser qualquer tipo válido no C#, ou como fizemos ali, nulo (void). Um nulo significa que essa função retorna absolutamente nada. E também, essa função não tem parâmetros, como se pode ver pelos parênteses vazios, por isso essa função é um pouco chata. Vamos mudar isso:

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    return result;
}

Mudamos quase tudo. Agora a função retorna um número inteiro, e leva dois parâmetros (ambos inteiros), e ao invés de retornar algo, ela faz o cálculo e então retorna o resultado. Isso significa que podemos adicionar dois números em vários lugares no nosso código simplesmente usando esta função, não precisando escrever o cálculo cada vez. Enquanto não temos que economizar tanto tempo e esforço nesse pequeno exemplo, é melhor você acreditar que vai aprender a amar funções, quanto mais usar o C#. Essa função é chamada assim:

int result = AddNumbers(10, 5);
Console.WriteLine(result);

Como mencionado, essa função realmente retorna algo, e ela tem que retornar pois falamos ao código que é para fazer isso. Quando declaramos qualquer coisa além de nulo(void) como o tipo de return, estamos forçando a retornar algo. Você pode tentar remover a linha de return no exemplo acima, e ver se o compilador entende:

'AddNumbers(int, int)': not all code paths return a value

O compilador está nos lembrando de que temos uma função que não retorna algo, embora tenhamos prometido. E o compilador é muito inteligente! Em vez de remover a linha, tente algo assim:

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    if(result > 10)
    {
return result;
    }
}

Você verá exatamente o mesmo erro - mas por quê? Porque não há garantia de que nossa declaração if será avaliada como true e a linha de retorno sendo executada. Você pode resolver isso com uma segunda instrução de retorno padrão no final:

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    if(result > 10)
    {
return result;
    }
    return 0;
}

Isso consertará o problema que criamos para nós mesmos e também mostrará que podemos ter mais de uma declaração de retorno em nossa função. Assim que uma declaração de retorno é atingida, a função é deixada e nenhum código nela é executado. Nesse caso, isso significa que, enquanto o resultado for maior que 10, o "retorno 0" nunca será atingido.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!