This article has been localized into Portuguese by the community.
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 deprecated!
This article has been re-organized and updated to better match the rest of the tutorial.
We suggest that you read this article instead: Methods (functions)