叫我嘿嘿嘿 发表于 2021-4-3 14:38:25

Button btn = (Button)sender

计算器程序中 Button btn = (Button)sender; textBox1.Text += btn.Text; 第一句是什么意思?为啥删了对程序没有影响?

肖-肖 发表于 2021-4-3 19:08:52

Button btn = (Button)sender; 这句代码是强制将传递过来的 sender 参数(object)转换成 Button。

   //Button btn = (Button)sender;
   textBox1.Text = textBox1.Text+" "+btnAdd.Text+" ";

比如注释掉第一行从效果来说,没有什么区别。

主要的区别在于:不注释掉的方式通用性更强。

比如这样一种场合:

多个button其 onclick 代码,基本没什么区别,那么你就可以使用同一个 Click 函数,但这样带来一个问题就是要区分是点击的哪一个button。

不注释掉的方法,由于 btn 是实时计算的,sender 会代之以当前点击的按钮对象。

而注释掉的方法,只会是 btnAdd 的 text。

希望对你有用!{:5_110:}

叫我嘿嘿嘿 发表于 2021-4-5 16:53:13

肖-肖 发表于 2021-4-3 19:08
Button btn = (Button)sender; 这句代码是强制将传递过来的 sender 参数(object)转换成 Button。

   / ...

谢谢老哥了,我仔细研究一下
页: [1]
查看完整版本: Button btn = (Button)sender