Вы находитесь на странице: 1из 4

MTODOS E ESCOPO

Mtodo uma seqncia nomeada de instrues. Cada mtodo tem um nome e um corpo. O corpo contem as
instrues que vo ser executadas quando o mtodo for chamado. O nome do mtodo deve ajudar a identificar seu
propsito, ex: CalcularImpostoVenda.

A maioria dos mtodos recebe dados, processa-os e retorna a informao ou o resultado do processamento.
Mtodo um mecanismo fundamental e poderoso.

Especificando a sintaxe de declarao de um mtodo:

tipoDeRetornonomeDoMetodo ( listaDeParamentros opcional )
{
// corpo do mtodo
}
tipoDeRetorno o tipo de dado que vai ser retornado pelo mtodo aps sua execuo. Pode ser o nome
de qualquer tipo como int ou string. Se o seu mtodo no for retornar valor algum, voc precisa usar a
palavra reservada void aqui, especificando que o mtodo no retorna nada.
nomeDoMetodo o nome que vai ser usado para chamar o mtodo. Este nome deve seguir as mesmas
recomendaes usadas nos nomes das variveis. Procure usar notao camelCasing para nomear os
mtodos e tambm procure utilizar um verbo na primeira palavra do nome, para ajudar a identificar o que o
mtodo faz.
ListaDeParametros descreve o tipo e os nomes das informaes opcionais que o mtodo recebe. Voc
escreve os parmetros dentro dos parnteses como se fosse declarar variveis: nome do tipo seguido pelo
nome do parmetro. Se o seu mtodo tiver mais que um parmetro, separe-os com vrgula.
Corpo do mtodo linhas de cdigo que vo ser executadas quando o mtodo chamado.

Abaixo um exemplo de um mtodo chamado AdicionarValores que retorna um numero inteiro (int) e recebe
dois nmeros inteiros como paramentos.

intadicionarValores (intnumeroPequeno, intnumeroGrande)
{
//...
// corpo do mtodo deve ser feito aqui
//...
}

Abaixo um segundo exemplo, de um mtodo chamado mostrarResultado que no retorna nenhum valor, e
recebe um simples parmetro chamado pergunta do tipo int.

voidmostrarResultado (int pergunta)
{
// ...
}

Lembre-se de usar a palavra reservada void quando o mtodo no for retornar nada.

Escrevendo declaraes que retornam valores:

Se voc quer que seu mtodo retorne uma informao (em outras palavras que retorne um tipo e no
um void), voc precisa escrever um cdigo de retorno dentro do mtodo.

Para isso voc usa a palavra reservada return, seguida da expresso que calcula o valor a ser retornado.
Ateno, porque o resultado da expresso deve ser do mesmo tipo que o especificado como tipoDeRetorno do
mtodo, seno o programa no vai compilar.

Por exemplo:

intadicionarValores (intnumeroPequeno, intnumeroGrande)
{
//...
returnnumeroPequeno + numeroGrande;
}

Lembre-se do ponto-e-vrgula ao final de cada instruo.

O retorno do mtodo deve estar no final do mtodo porque ele causa a finalizao do mtodo. Qualquer
cdigo depois da linha que faz o retorno no vai ser executado.

Se voc no quer que seu mtodo retorne informao alguma (do tipo void), e voc encerrar a execuo do
mtodo, pode usar a palavra return para o encerramento imediato do mtodo.

Por exemplo:

voidmostrarResultado (int pergunta)
{
...
if (...)
return;
...
}

Se o seu mtodo no precisar retornar nada voc pode simplesmente omitir o return, porque o mtodo vai
ser finalizado automaticamente quando a ultima linha de cdigo do corpo for executada.

Chamando mtodos:

Mtodos existem para serem chamados. Voc chama um mtodo pelo seu nome para ele executar uma
tarefa. Se esse mtodo precisa de informaes para realizar sua tarefa (parmetros), voc precisa enviar essas
informaes pra ele. Se o mtodo retornar uma informao, voc precisa ter uma forma de receber essa
informao, como uma varivel, por exemplo.

Especificando a sintaxe para se chamar um mtodo:

nomeDoMetodo (listaDeArgumentos opcional)
nomeDoMetodo precisa ser exatamente igual ao nome do mtodo que voc esta chamando, lembre-se
que o C# case-sensitive ou seja, diferencia maisculas de minsculas.
listaDeArgumentos informaes adicionais que o mtodo aceita, voc precisa passar um valor para cada
parmetro e este valor precisa ser compatvel o tipo correspondente ao parmetro. Se o mtodo que voc
esta chamando tiver dois ou mais parmetros, voc precisa separar os valores com vrgula.
Importante: Voc precisa escrever os parnteses ao final de cada mtodo, mesmo que l no tiver
parmetro algum.

Por exemplo, lembre-se do mtodo adicionarValores:

intadicionarValores (intnumeroPequeno, intnumeroGrande)
{
//...
returnnumeroPequeno + numeroGrande;
}

Este mtodo tem dois parmetros entre os parnteses, para cham-lo, faa assim:
adicionarValores(39,3)

Esta a maneira correta de chamar o mtodo, se voc tentar das seguintes formas no vai conseguir:

adicionarValores // Falta parnteses
adicionarValores() // Falta argumentos
adicionarValores(39) // Falta um argumento
adicionarValores(39, 3) // Tipos errados

O mtodo adicionarValores retorna um numero inteiro. Este valor inteiro pode ser usado em qualquer lugar
que uma variavelint puder ser usada.

Por exemplo:

resultado = adicionarValores(39,3);
mostrarResultado(adicionarValores(39,3));

No primeiro exemplo atribumos o retorno a uma varivel chamada resultado.

No segundo atribumos o resultado a outro mtodo, que vai utilizar este resultado como parmetro para sua
execuo.

Entendendo Escopo:

Voc viu que pode criar uma varivel dentro de um mtodo. A varivel criada na cdigo que a define, e
outros cdigo no mesmo mtodo que vm depois podem usar a varivel. Em outras palavras, uma varivel pode ser
usada s em certos lugares depois de que ter sido criada. Uma vez que o mtodo terminou, a varivel desaparece
completamente.

Se uma varivel pode ser usada em um local particular em um programa, ela parece estar no escopo
daquele local. O escopo de uma varivel simplesmente a regio do programa em que ela utilizvel. O escopo se
aplica a mtodos como tambm a variveis. O escopo de uma varivel ligado ao local da sua declarao que
introduz a mesma no programa, como voc aprender agora.

Criando escopo local com um mtodo.

As chaves determinam onde comea e onde termina o corpo do mtodo. Elas tambm determinam o
escopo do mtodo. Qualquer varivel criada dentro do corpo do mtodo faz parte do escopo do mtodo. Estas
variveis so chamadas de variveis locais porque so locais ao mtodo onde so declaradas. Elas no podem ser
usadas no escopo nenhum outro mtodo, por isso voc no pode usar variveis locais para armazenar informaes
entre mtodos. Quando um mtodo acaba sua execuo ele finaliza as variveis que ele criou.

Por exemplo:

class Exemplo
{
void mtodo()
{
intvariavel;
...
}
voidoutroMetodo()
{
variavel = 42; // isso gera um erro de compilao
}
}

O erro mostrado acima porque a variavel foi criada dentro de um mtodo diferente da qual esta sendo
usada.

Criando escopo de classe com uma classe:

As chaves determinam onde comea e onde termina o corpo da classe e determinam seu escopo. Assim
sendo, qualquer varivel que voc criar dentro do corpo da classe (mas que no estejam dentro do mtodo), fazem
parte do seu escopo. Em C# o nome correto desse tipo de varivel campo. Em contraste as variveis locais voc
pode usar os campos para armazenar informaes entre os mtodos.

Por exemplo:

class Exemplo
{
int campo;
void mtodo()
{
campo = 42;
...
}
voidoutroMetodo()
{
campo = 44;
}
}

Perceba que criamos a varivel dentro da classe.

Em um mtodo voc precisa declarar uma varivel antes de us-la. Campos so diferentes, um mtodo pode
usar um campo antes de ser definido algum valor para ele.

Exerccios:
1. Criar um mtodo que concatene textos;
2. Criar um mtodo que faa a soma entre dois nmeros inteiros;

Вам также может понравиться