C_Sharp 板


LINE

不好意思,我不太知道如何下這個標題.. 我從書上看到的一段程式是: public void PickLock(Locksmith lockpicker) { lockpicker.WriteDownCombination(safeCombination); } 這個方法傳入一個參數 Locksmith是一個類別 lockpicker是Locksmith的類別宣告變數 但是並沒有new,也就是沒有創造一個新物件 然後這個方法裡面,又用lockpicker去呼叫WriteDownCombination這個方法 但是不是應該要new一個物件出來,才能去呼叫WriteDownCombination這個方法嗎? 所以PickLock方法所傳入的參數,不是應該要是物件,而不能是宣告嗎? 謝謝幫忙 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.115.72
1F:→ andymai:如果那方法是static的話就不用new了... 09/13 19:37
可是我方法的前面也沒看到static... ※ 編輯: bernachom 來自: 114.42.115.72 (09/13 19:42)
2F:→ s3748679:有可能是要透過某物件才能create說,換句話說 09/13 22:44
3F:→ s3748679:這類別可能是某類別的附屬品哦 09/13 22:44
4F:→ s3748679:還是補一下好了,理論上找不到ctor就代表該ctor非public 09/13 22:59
5F:→ s3748679:或根本不需要實體,而要能得到實體大概有二種情況 09/13 23:00
6F:→ s3748679:一個就像上面該大大一樣,找找看該類別有無可用的static 09/13 23:01
7F:→ s3748679:因為該static成員因為是本身類別成員,所以看得到ctor 09/13 23:01
8F:→ s3748679:另一種情況則是ctor為friend,使其他類別能看到ctor又在 09/13 23:03
9F:→ s3748679:public域看不到 PS:像是引進組件時 不應該看到friend這樣 09/13 23:04
10F:→ s3748679:應該就是這樣了@@~ 請多多指教 09/13 23:05
有點感覺了,我再把書翻看看,謝謝各位前輩的幫忙 ※ 編輯: bernachom 來自: 114.42.115.72 (09/13 23:18)
11F:→ andymai:那可以把Locksmith這個類別貼上來嗎? 09/13 23:18
好,我等一下打一下 ※ 編輯: bernachom 來自: 114.42.115.72 (09/13 23:19) [CODE] 我打部份相關的code出來 class Safe{ private Jewels contents = new Jewels(); private string safeCombination = "12345"; public Jewels Open(string combination) { if (combination == safeCombination) return contetns; else return null; } public void PickLock(Locksmith lockpicker){ //#1 lockpicker.WriteDownCombination(safeCombination); } } class Locksmith{ public void OpenSafe(Safe safe, Owner owner){ safe.PickLock(this); //#2 Jewels safeContents = safe.Open(writtenDownCombination); ReturnContents(safeContents, owner); } // other code . . . . } class Program{ static void Main(string[] args) { Owner owner = new Owner(); Safe safe = new Safe(); //other code Console.ReadKey(); } 好像就是前輩們說,Locksmith這個類別是safe這個instance的附屬品囉 @@? 謝謝幫忙 ※ 編輯: bernachom 來自: 114.42.115.72 (09/13 23:31)
12F:→ andymai:instance是拿來統一操作用的~就像主機板上有PCI-E顯示卡 09/14 01:03
13F:→ andymai:介面~所以不管哪家廠牌的PCI-E顯示卡都可以插上去用一樣 09/14 01:04
14F:→ andymai:看到這些程式並不能就這樣判斷沒有new過~因為safe.PickLoc 09/14 01:06
15F:→ andymai:k傳的是"this"~所以關鍵點在於Locksmith的OpenSafe在哪裡 09/14 01:07
16F:→ andymai:被呼叫了~也許在那邊就可以看到new的實體... 09/14 01:08
17F:→ andymai:另外Safe是class型態~說它是instance?應該不恰當吧??? 09/14 01:10
最後的class Program裡面有寫這一段 Safe safe = new Safe(); 所以我就把safe當成是instance了@@.. 想請教一下 那個this傳的是物件的參考,是傳哪個物件的哪個參考呢? 我看得頭有點轉不過來.. 謝謝您的幫忙 ※ 編輯: bernachom 來自: 114.42.115.72 (09/14 01:32)
18F:→ andymai:"this"顧名思義就是"自己"~在Locksmith這個類別裡面用~當 09/14 02:08
19F:→ andymai:然指的就是"當下的自己"~所以肯定在某個地方有new過~不然 09/14 02:09
20F:→ andymai:沒有身體~又哪來的自己? 09/14 02:09
請教一下 所以這裡的this指的就是Locksmith 所 new出來的東西囉? 我在翻書看看,因為一直沒找到Locksmith所new出來的東西 ※ 編輯: bernachom 來自: 114.42.115.72 (09/14 02:29)
21F:→ andymai:嗯~建議是從呼叫OpenSafe的地方開始查... 09/14 02:46
22F:→ ssccg:你貼的部分只有class定義,跟實際上有沒有new instance沒關 09/14 16:03
23F:→ ssccg:如果OpenSafe有被用到,那個地方自然有某個Locksmith的物件 09/14 16:04
24F:→ ssccg:someLS.OpenSafe(safe, owner); // someLS 就是那個物件 09/14 16:08
25F:→ ssccg:方法定義的地方那樣寫就是定義會傳入物件了 09/14 16:09
26F:→ ssccg:你先把語法弄熟一點吧... 09/14 16:09
27F:→ s3748679:程式看看要不要貼在這: http://ideone.com/ 09/14 19:05







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP