[問題] 深入淺出 P214頁..問題

看板C_Sharp (C#)作者 (Terry)時間13年前 (2012/05/09 21:03), 編輯推噓3(3017)
留言20則, 4人參與, 最新討論串1/1
請教一下 不知道有沒有前輩使用這本書 在P214頁的地方 中間程式碼有一行 this.fancyDecorations = fancyDecorations; 這一行是多的嗎? 他這個public是長這樣 public DinnerPatty(int numberOfPeople, bool healthyOption, bool fancyDecorations) { NumberOfPeople = numberOfPeople; this.fancyDecorations = fancyDecorations; //--1 SetHealthyOption(healthyOption); CalculateCostOfDecorations(fancyDecorations);//--2 } 感覺1好像是多出來的 我拿掉之後,程式也是可以跑,也看不出來有什麼錯誤 這個bool fancyDecorations是個核取方塊,只會傳進true or false //--1 這邊做的是,把true or false讀進來 //--2 這邊做的是,如果是true or false讀進來做計算 所以我覺得把1拿掉,//--2 這邊還是會做計算 所以//--1我在想會不會是可有可無的? 然後 可是如果拿掉//--1這一行的話,就會被參數給覆蓋掉 但是他在表單中,他還寫了這段建構子的code public Form1(){ InitializeComponent(); dinnerParty = new DinnerParty((int)numericUpDown1.value, healthybox.Checked, fancyBox.Checked); DisplayDinnerPartyCost();//這個方法是說,每次只要核取方塊或是數值有改變就會更新 } 所以是說,因為他建構子裡面有寫這一段,更新的code 所以//--1拿掉是可以的嗎? 希望有這本書的前輩能指導一下 這一行是不是可有可無呢? 謝謝幫忙 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.123.56

05/09 21:53, , 1F
有不少書都有掛上深入淺出這東東吧..
05/09 21:53, 1F

05/09 21:54, , 2F
從原Po給的線索來看,是需要的,二個fancyDecorations對
05/09 21:54, 2F

05/09 21:55, , 3F
項是不一樣的,一個為物件中的某成員,另一個則是參數。
05/09 21:55, 3F

05/09 22:19, , 4F
有掛this的是該類別的屬性,沒有則是該方法的參數,所以是必要的
05/09 22:19, 4F

05/09 22:27, , 5F
我的說法是來自JAVA,有沒有一樣,我就不知道了
05/09 22:27, 5F

05/09 22:28, , 6F
我使用的是OREILLY這本書
05/09 22:28, 6F

05/09 22:28, , 7F
我知道this指的是欄位,另一個是參數
05/09 22:28, 7F

05/09 22:28, , 8F
只是..我頭腦有點卡住了...為什麼兩個都要傳值QQ
05/09 22:28, 8F

05/09 22:29, , 9F
所以我試著把THIS那一行拿掉,結果也是可以跑的@@
05/09 22:29, 9F

05/09 22:29, , 10F
所以想來詢問有前輩知道拿掉的問題在哪嗎..謝謝
05/09 22:29, 10F

05/09 23:12, , 11F
簡單的一個例子: http://ideone.com/MTeOV
05/09 23:12, 11F

05/09 23:21, , 12F
謝謝您,我研究一下,謝謝
05/09 23:21, 12F
※ 編輯: bernachom 來自: 114.42.123.56 (05/10 00:01)

05/10 00:41, , 13F
那DinnerPatty.fancyDecorations是拿來做什麼的..?
05/10 00:41, 13F

05/10 00:42, , 14F
如果用不到那就把那欄位刪了吧.. 否則還是有意義的。
05/10 00:42, 14F

05/10 00:47, , 15F
我是在想說..是不是他只是想表示比較札實的一種動作而已
05/10 00:47, 15F

05/10 00:47, , 16F
@@"
05/10 00:47, 16F

05/10 06:48, , 17F
會設到欄位去就要看有沒有其他使用到的地方~並不是看當下
05/10 06:48, 17F

05/10 06:50, , 18F
的方法沒用到就代表沒用~以這個例子來看~既然已經設定欄位
05/10 06:50, 18F

05/10 06:51, , 19F
那就不需要在2那邊把參數傳過去~2的方法裡面直接取就好了
05/10 06:51, 19F

05/10 06:52, , 20F
有先後順序的關係除外...
05/10 06:52, 20F
文章代碼(AID): #1FgciTq1 (C_Sharp)
文章代碼(AID): #1FgciTq1 (C_Sharp)