作者andy910389 (*微凉的你*)
看板C_Sharp
标题[问题] 想请问sender
时间Tue Mar 23 22:24:32 2010
不好意思 因为我是C#的初学者
去买了一本视窗程设在自学 可是有一个东西我一直看不太懂
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
RadioButton radioButton = (RadioButton)sender;
if (radioButton.Checked == false) return;
................
}
关於像这样的函式 究竟sender是什麽呀? 可以做什麽?
尤其像那一行 RadioButton radioButton = (RadioButton)sender;
这一行书上都没特别解说 所以我看的雾飒飒@@
所以只好上来问各为大大 希望有人可以为我解说 谢谢~~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.60.253.80
1F:→ james732:sender就是被按的那个radioButton 03/23 22:29
2F:→ james732:我们可以让一百个按钮共用同一个处理函式 再利用 sender 03/23 22:29
3F:→ james732:来判断是哪个按钮被按下 03/23 22:29
4F:→ andy910389:大概了解了~再请问sender前的(RadioButton)是不是表示 03/23 22:34
5F:→ andy910389:被判断的就是radio的按钮 也意味着其他类型的按钮也可 03/23 22:35
6F:→ andy910389:以用括弧的方式 来判断不同种按钮的选择对吧@@ 03/23 22:35
7F:→ andy910389:比如 应该也有(Checkbox)sender这样的用法吧? 03/23 22:36
8F:推 F23ko:没错 03/23 22:41
9F:→ F23ko:(Checkbox)sender 的意思是....把sender转型为Checkbox 03/23 22:42
10F:→ F23ko:传进去方法的时候,是用object这个类别,所以要转型。 03/23 22:43
11F:→ F23ko:或者说....unboxing 03/23 22:43
12F:→ andy910389:OK~~了解了 谢谢你们热心的解说^^ 03/23 23:35
13F:→ remmurds:我比较喜欢用as关键字 程式码看起来比较漂亮@@ 03/24 11:21
14F:→ remmurds:不过对於非参考型别而言还是必须要用小括弧就是了 03/24 11:23
15F:→ adrianc:还是推文一下好了... unboxing 是指自物件撷取 实值型别 03/24 18:50
16F:→ adrianc:Checkbox 显然不属於实值型别 boxing/unboxing 该属於 03/24 18:52
17F:→ adrianc:效能议题 和这里的问题没什麽关系 03/24 18:53
18F:→ adrianc:as 和 (cast) 不同 除 as 只针对参考型别间转型外 03/24 18:55
19F:→ adrianc:as 转不过只是还你一个 null (cast)转不过会吐个 ex 给你 03/24 18:58
20F:推 F23ko:原来boxing/unboxing只限定用在实质型别上啊.... 03/24 19:39
21F:→ F23ko:我还以为把东西包成更底层的类型就叫做boxing.... 03/24 19:40
22F:→ remmurds:没记错的话adrianc说的ex是指InvalidCastException 03/24 21:12
23F:→ remmurds:这也是as比Casting好用的地方(只以参考型别来说) 03/24 21:13