Método que recebe dados do chamador e retorna dados ao mesmo chamador

6 respostas
L

Pessoal, gostaria de saber como implementar um método que recebe dados e retorna dados ao mesmo método que o chamou. Tanto entre 2 métodos de uma mesma classe como entre métodos de classe diferentes. Grato.

6 Respostas

R

O retorno de qualquer método será sempre onde aquele método foi chamado. Se você chamar o método Calcular da classe Calculadora a partir de um método Cadastrar uma classe Formulario, por exemplo, o retorno de Calculadora.Calcular estará em Formulario.Cadastrar.

Pro método Calcular ser acessível de outras classes, é só deixar ele com o modificador de acesso public.

L

Meu problema é como codificar isso. Por exemplo, quando eu chamo um metodo onde só passarei dados (não receberei nenhum dado) eu codifico:

Chamado Chamador = new Chamado();
Chamador.MetodoChamado (dados);

Como fazer pra tb receber um dado do Metodo Chamado?

Apenas ilustrando, eu gostaria de fazer algo assim:

Chamado Chamador = new Chamado();
Chamador.MetodoChamado (dados_entrada, dados_saida);

Eu mandaria dados usando o dados_entrada. O Método chamado processaria esses dados e retornaria o dados_saida.
Grato.

R

Pelo que entendi, o que você está tentando fazer é um método que não retorna nada (um método com retorno void) chamar outro método que retorna,por exemplo, um int, e ter o primeiro método retornando alguma coisa. Infelizmente não funciona assim.

Minha sugestão é que você faça um método public dados_saida ProcessarDados(dados_entrada)

L

Não é bem isso. Vou tentar um exemplo banal: eu quero q o método A chame o método B enviando duas informaçoes (dados): o numero (integer) 2 e o numero (integer) 3.
O Método B pega o 2 e o 3, que somando dá o resultado 5, e devolve pro método A (q chamou o método B) o resultado da soma. No caso, o numero (integer) 5.

R

Neste caso, algo nessa ideia:
public void MetodoA(){ // um método sem parâmetros int resultado = MetodoB(2, 3); } public int MetodoB(int a, int b){ // um método que recebe 2 parâmetros int return a + b; }

O tipo do returno é a segunda palavra na linha de declaração do método. No MetodoA o retorno é void, ou seja, não retorna nada, enquanto no MetodoB, o retorno é um int, um inteiro. Dentro dos parênteses estarão os parâmetros que você passará, respeitando a sintaxe: (tipo nomeVariavel, tipo nomeVariavel). Claro que isso deve respeitar a sintaxe da linguagem utilizada.

Caso o MetodoB esteja em outra classe, você deve criá-la primeiro, caso o método não seja static. Por exemplo, na sua classe principal:
private void btnClick(object sender, EventArgs e){ string nome = txtNome.Text; string cpf = Validadores.ValidarCpf(txtCpf.Text); }

Na sua classe Validadores:
public class Validadores{ public static string ValidarCpf(string cpf){ return cpf + "cpf válido";} }

Se não for um método estático:

Na classe principal:
private void btnClick(object sender, EventArgs e){ Validadores validador = new Validadores(); string nome = txtNome.Text; string cpf = validador.ValidarCpf(txtCpf.Text);

Na classe Validadores:
public class Validadores { public string ValidarCpf(string cpf){ return cpf + " cpf válido";} }

Se todos estiverem na mesma classe, não precisa criar uma outra variável/chamar a classe.

L

Rodgallert, muito obrigado. Vc resolveu minha dúvida. Muito obrigado. Abc.

Criado 2 de junho de 2017
Ultima resposta 2 de jun. de 2017
Respostas 6
Participantes 2