Ir para conteúdo
Fórum Script Brasil
  • 0

OBJECT SENDER


aldo macedo

Pergunta

Nesse metodo ou função criada, entendo a maioria dos comandos, mas não consigo compreender direito o que são (OBject Sender e EventArgs e)

alguém poderia me ajudar a decifrar .

private void Calcular(object sender, EventArgs e)

{

try

{

decimal valor1, valor2, resultado = 0;

valor1 = Convert.ToDecimal(valor1TextBox.Text);

valor2 = Convert.ToDecimal(valor2TextBox.Text);

Button botao = new Button();

botao = (Button)sender;

switch (botao.Text)

{

case "+": resultado = valor1 + valor2; break;

case "-": resultado = valor1 - valor2; break;

case "*": resultado = valor1 * valor2; break;

case "/": resultado = valor1 / valor2; break;

}

resultadoLabel.Text = resultado.ToString("n2");

}

catch (FormatException)

{

MessageBox.Show("Erro de formato");

}

catch (DivideByZeroException)

{

MessageBox.Show("Erro de Divisão por Zero");

}

catch (Exception)

{

MessageBox.Show("Erro de Desconhecido");

}

}

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0
Nesse metodo ou função criada, entendo a maioria dos comandos, mas não consigo compreender direito o que são (OBject Sender e EventArgs e)

alguém poderia me ajudar a decifrar .

private void Calcular(object sender, EventArgs e)

{

try

{

decimal valor1, valor2, resultado = 0;

valor1 = Convert.ToDecimal(valor1TextBox.Text);

valor2 = Convert.ToDecimal(valor2TextBox.Text);

Button botao = new Button();

botao = (Button)sender;

switch (botao.Text)

{

case "+": resultado = valor1 + valor2; break;

case "-": resultado = valor1 - valor2; break;

case "*": resultado = valor1 * valor2; break;

case "/": resultado = valor1 / valor2; break;

}

resultadoLabel.Text = resultado.ToString("n2");

}

catch (FormatException)

{

MessageBox.Show("Erro de formato");

}

catch (DivideByZeroException)

{

MessageBox.Show("Erro de Divisão por Zero");

}

catch (Exception)

{

MessageBox.Show("Erro de Desconhecido");

}

}

Tenho dificuldades em entender o significado da sintaxe... e dos conceitos de que tudo é objeto.

Existe alguma referencia mais na linguagem coloquial. hehehe

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

então, o sender e o e são usados em eventos. o sender serve pra você saber quem chamou o evento e o e são os argumentos recebidos. exemplo, num evento de keydown (pressionar o teclado), você sabe qual tecla ele pressionou a partir do e.

olha, nesse tópico aqui eu dei uma explicacao mais o menos de como funciona para o evento chamar a sub: http://scriptbrasil.com.br/forum/index.php...st&p=523348

se você ler la vai entender q objetos diferentes podem chamar o mesmo evento. o sender serve pra saber qual foi esse objeto.

ai no caso foi você q fez a funcao Calcular não?? ela é um evento?? se não for não precisar do sender nem do e.

Tenho dificuldades em entender o significado da sintaxe... e dos conceitos de que tudo é objeto.

ai não consegui entender o q você quis dizer com isso. o q você não entendeu do codigo??

Link para o comentário
Compartilhar em outros sites

  • 0
então, o sender e o e são usados em eventos. o sender serve pra você saber quem chamou o evento e o e são os argumentos recebidos. exemplo, num evento de keydown (pressionar o teclado), você sabe qual tecla ele pressionou a partir do e.

olha, nesse tópico aqui eu dei uma explicacao mais o menos de como funciona para o evento chamar a sub: http://scriptbrasil.com.br/forum/index.php...st&p=523348

se você ler la vai entender q objetos diferentes podem chamar o mesmo evento. o sender serve pra saber qual foi esse objeto.

ai no caso foi você q fez a funcao Calcular não?? ela é um evento?? se não for não precisar do sender nem do e.

Tenho dificuldades em entender o significado da sintaxe... e dos conceitos de que tudo é objeto.

ai não consegui entender o q você quis dizer com isso. o q você não entendeu do codigo??

Esse metodo calcular foi criado para ser executado em botoes diferentes.. o mesmo metodo disparando botoes que só tem o TEXT diferente.

A chamada do metodo foi colocada no load do form.

private void calcForm_Load(object sender, EventArgs e)

{

this.somaButton.Click+=new EventHandler(calcular);

this.subtraiButton.Click += new EventHandler(calcular);

this.multiplicaButton.Click += new EventHandler(calcular);

this.divideButton.Click += new EventHandler(calcular);

}

Creio que deva ter faltado essa parte do codigo.. o EventHandler ai está mandando o resultado da função calcular para o evento click do botao. creio que seja isso?

Meus problemas ainda são conceituais não consigo ainda concatenar as ideias sobre o funcionamento hehehe..

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0
Quando der um clique duplo, todos esse botões irão disparar o método calcular.

Tem mais alguma dúvida?

Abraços...

Quintelab

Os conceitos que digo não é especificamente deste exemplo.. seria no geral..

Um exemplo é o conceito de boxing e unboxing... os exemplos que vejo na internet são simples.. queria entender como tudo isso funciona de uma forma mais pratica,

ou numa linguagem mais acessivel, pare leigos mesmo.

boxing inteiro em objeto... unboxing obtejo em inteiro.

no caso deste exemplo em especial o codigo abaixo, que faz parte do meu primeiro codigo enviado, me parece ser um unboxing.. mas não entendi o porque

Button botao = new Button();

botao = (Button)sender;

Obrigado

Quando der um clique duplo, todos esse botões irão disparar o método calcular.

Tem mais alguma dúvida?

Abraços...

Acabei de ver sua resposta no outro Forum eheheh...

obrigado de qualquer

Link para o comentário
Compartilhar em outros sites

  • 0

não sei o q é boxing nem unboxing, mas esse codigo ai q você passou declara um botao e converte o sender nele (de object pra botao) porque assim fica mais facil de utilizar. o sender é declarado como object e não como button (porque diferentes tipos de objetos podem ta chamando o mesmo evento, exemplo, um textbox). e se você fosse usar a partir do sender ia ter q fazer o cast toda hora. então ele converte uma vez so e já guarda convertido num objeto button.

tdo bem q o objeto botao so é usado uma vez (então podia fazer o switch direto no sender com um cast, gastando assim menos tempo e menos memoria), mas quem fez o codigo deve te pensado em criar o objeto botao somente pra já dexar pronto caso se queira mais tarde fazer um uso do botao.

Link para o comentário
Compartilhar em outros sites

  • 0
não sei o q é boxing nem unboxing, mas esse codigo ai q você passou declara um botao e converte o sender nele (de object pra botao) porque assim fica mais facil de utilizar. o sender é declarado como object e não como button (porque diferentes tipos de objetos podem ta chamando o mesmo evento, exemplo, um textbox). e se você fosse usar a partir do sender ia ter q fazer o cast toda hora. então ele converte uma vez so e já guarda convertido num objeto button.

tdo bem q o objeto botao so é usado uma vez (então podia fazer o switch direto no sender com um cast, gastando assim menos tempo e menos memoria), mas quem fez o codigo deve te pensado em criar o objeto botao somente pra já dexar pronto caso se queira mais tarde fazer um uso do botao.

Kuroi... Obrigado

Eu já havia entendido na sua mensagem anterior.. creio que havia hehehe..

Sobre boxing e unboxing, só enviei como exemplo , pois o Quintelab mandou uma mensagem e eu quiz argumentar a ele quais minhas dificuldades..

Por isso a insistencia em achar material na net mais acessivel a leigos.

Mas com relação ao primeiro codigo que lhe enviei eu entendi.. e acho que confundi Unboxing com Cast. Sei lá.. deu uma enrolada agora. hehehe

Abraços

Obrigado novamente.

Link para o comentário
Compartilhar em outros sites

  • 0

Mas você esta tentando aprofundar no framework de tal forma que não se pode considerar que seja leigo para isso. Entendo sua preocupação de entender por exemplo sobro Boxing e UnBoxing. Mas eu já programava a um bom tempo usando o framework e nem sabia o que era isso. Só fui descobri da existências desses conceitos quando estava estudando pra certificação. Você quer material para leigo referente a assuntos que não são para leigos.

Vou indicar um livro que é de base para a certificação, todos que ouvi que tiraram certificação se basearam nele, a prova 70-536 abrange bem assunto diretamente ao framework, e desde sua base, tipos de variáveis, tamanho de variáveis até assuntos um pouco mais complexos como segurança da aplicação, se tiver interesse este é o livro: http://www.amazon.com/MCTS-Self-Paced-Trai...6/dp/0735622779

Quem tiver interesse em saber o que é Boxing e UnBoxing: http://www.dnzone.com/ShowDetail.asp?NewsId=377

Abraços...

Link para o comentário
Compartilhar em outros sites

  • 0
Mas você esta tentando aprofundar no framework de tal forma que não se pode considerar que seja leigo para isso. Entendo sua preocupação de entender por exemplo sobro Boxing e UnBoxing. Mas eu já programava a um bom tempo usando o framework e nem sabia o que era isso. Só fui descobri da existências desses conceitos quando estava estudando pra certificação. Você quer material para leigo referente a assuntos que não são para leigos.

Vou indicar um livro que é de base para a certificação, todos que ouvi que tiraram certificação se basearam nele, a prova 70-536 abrange bem assunto diretamente ao framework, e desde sua base, tipos de variáveis, tamanho de variáveis até assuntos um pouco mais complexos como segurança da aplicação, se tiver interesse este é o livro: http://www.amazon.com/MCTS-Self-Paced-Trai...6/dp/0735622779

Quem tiver interesse em saber o que é Boxing e UnBoxing: http://www.dnzone.com/ShowDetail.asp?NewsId=377

Abraços...

Obrigado pela dica Quintelab..

Mas sou leigo sim com certeza.. O problema é que vejo um codigo e ouço alguém tecer algum comentario a respeito do que o comando está fazendo. Se eu não entendo, vou a procura de alguma informação.

Não trabalhao na area, estou fazendo treinamento de formação web dev na impacta, só que nos cursos se passam muito sem dar os detalhes de funcionamento, creio que nem seja funcionamento, mas de como funciona a extrutura toda.. sei lá.

Como eu só estudo.. estou tentando entender os detalhes que passam despercebidos.. ainda não me acostumei simplesmente a usar o codigo sem pensar nos porques eu estou utilizando aquilo. Entende?

Mas valeu a dica.. obrigado...

Ultimo detalhe.. heheheh... Esse livro que voce indicou.. Tem versao Portugues.

Abraços e obrigado novamente

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...