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.
Método que recebe dados do chamador e retorna dados ao mesmo chamador
6 Respostas
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.
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.
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)
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.
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.
Rodgallert, muito obrigado. Vc resolveu minha dúvida. Muito obrigado. Abc.