看板 C_Sharp 關於我們 聯絡資訊
不好意思 因為我是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
james732:sender就是被按的那個radioButton 03/23 22:29
james732:我們可以讓一百個按鈕共用同一個處理函式 再利用 sender 03/23 22:29
james732:來判斷是哪個按鈕被按下 03/23 22:29
andy910389:大概了解了~再請問sender前的(RadioButton)是不是表示 03/23 22:34
andy910389:被判斷的就是radio的按鈕 也意味著其他類型的按鈕也可 03/23 22:35
andy910389:以用括弧的方式 來判斷不同種按鈕的選擇對吧@@ 03/23 22:35
andy910389:比如 應該也有(Checkbox)sender這樣的用法吧? 03/23 22:36
F23ko:沒錯 03/23 22:41
F23ko:(Checkbox)sender 的意思是....把sender轉型為Checkbox 03/23 22:42
F23ko:傳進去方法的時候,是用object這個類別,所以要轉型。 03/23 22:43
F23ko:或者說....unboxing 03/23 22:43
andy910389:OK~~了解了 謝謝你們熱心的解說^^ 03/23 23:35
remmurds:我比較喜歡用as關鍵字 程式碼看起來比較漂亮@@ 03/24 11:21
remmurds:不過對於非參考型別而言還是必須要用小括弧就是了 03/24 11:23
adrianc:還是推文一下好了... unboxing 是指自物件擷取 實值型別 03/24 18:50
adrianc:Checkbox 顯然不屬於實值型別 boxing/unboxing 該屬於 03/24 18:52
adrianc:效能議題 和這裡的問題沒什麼關係 03/24 18:53
adrianc:as 和 (cast) 不同 除 as 只針對參考型別間轉型外 03/24 18:55
adrianc:as 轉不過只是還你一個 null (cast)轉不過會吐個 ex 給你 03/24 18:58
F23ko:原來boxing/unboxing只限定用在實質型別上啊.... 03/24 19:39
F23ko:我還以為把東西包成更底層的類型就叫做boxing.... 03/24 19:40
remmurds:沒記錯的話adrianc說的ex是指InvalidCastException 03/24 21:12
remmurds:這也是as比Casting好用的地方(只以參考型別來說) 03/24 21:13