aldo macedo Postado Janeiro 7, 2009 Denunciar Share Postado Janeiro 7, 2009 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"); } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 aldo macedo Postado Janeiro 9, 2009 Autor Denunciar Share Postado Janeiro 9, 2009 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. heheheAbraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Janeiro 9, 2009 Denunciar Share Postado Janeiro 9, 2009 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=523348se 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?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 aldo macedo Postado Janeiro 13, 2009 Autor Denunciar Share Postado Janeiro 13, 2009 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=523348se 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 quintelab Postado Janeiro 13, 2009 Denunciar Share Postado Janeiro 13, 2009 Quando der um clique duplo, todos esse botões irão disparar o método calcular.Tem mais alguma dúvida?Abraços... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 aldo macedo Postado Janeiro 13, 2009 Autor Denunciar Share Postado Janeiro 13, 2009 Quando der um clique duplo, todos esse botões irão disparar o método calcular.Tem mais alguma dúvida?Abraços...QuintelabOs 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 porqueButton 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Janeiro 13, 2009 Denunciar Share Postado Janeiro 13, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 aldo macedo Postado Janeiro 13, 2009 Autor Denunciar Share Postado Janeiro 13, 2009 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... ObrigadoEu 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. heheheAbraçosObrigado novamente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 quintelab Postado Janeiro 13, 2009 Denunciar Share Postado Janeiro 13, 2009 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/0735622779Quem tiver interesse em saber o que é Boxing e UnBoxing: http://www.dnzone.com/ShowDetail.asp?NewsId=377Abraços... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 aldo macedo Postado Janeiro 13, 2009 Autor Denunciar Share Postado Janeiro 13, 2009 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/0735622779Quem tiver interesse em saber o que é Boxing e UnBoxing: http://www.dnzone.com/ShowDetail.asp?NewsId=377Abraç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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 quintelab Postado Janeiro 13, 2009 Denunciar Share Postado Janeiro 13, 2009 Infelizmente não tem.Abraços... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
aldo macedo
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
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.