[問題] 方法可以接受類別型態的變數當參數嗎?
不好意思,我不太知道如何下這個標題..
我從書上看到的一段程式是:
public void PickLock(Locksmith lockpicker)
{
lockpicker.WriteDownCombination(safeCombination);
}
這個方法傳入一個參數
Locksmith是一個類別
lockpicker是Locksmith的類別宣告變數
但是並沒有new,也就是沒有創造一個新物件
然後這個方法裡面,又用lockpicker去呼叫WriteDownCombination這個方法
但是不是應該要new一個物件出來,才能去呼叫WriteDownCombination這個方法嗎?
所以PickLock方法所傳入的參數,不是應該要是物件,而不能是宣告嗎?
謝謝幫忙
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.115.72
→
09/13 19:37, , 1F
09/13 19:37, 1F
可是我方法的前面也沒看到static...
※ 編輯: bernachom 來自: 114.42.115.72 (09/13 19:42)
→
09/13 22:44, , 2F
09/13 22:44, 2F
→
09/13 22:44, , 3F
09/13 22:44, 3F
→
09/13 22:59, , 4F
09/13 22:59, 4F
→
09/13 23:00, , 5F
09/13 23:00, 5F
→
09/13 23:01, , 6F
09/13 23:01, 6F
→
09/13 23:01, , 7F
09/13 23:01, 7F
→
09/13 23:03, , 8F
09/13 23:03, 8F
→
09/13 23:04, , 9F
09/13 23:04, 9F
→
09/13 23:05, , 10F
09/13 23:05, 10F
有點感覺了,我再把書翻看看,謝謝各位前輩的幫忙
※ 編輯: bernachom 來自: 114.42.115.72 (09/13 23:18)
→
09/13 23:18, , 11F
09/13 23:18, 11F
好,我等一下打一下
※ 編輯: 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)
→
09/14 01:03, , 12F
09/14 01:03, 12F
→
09/14 01:04, , 13F
09/14 01:04, 13F
→
09/14 01:06, , 14F
09/14 01:06, 14F
→
09/14 01:07, , 15F
09/14 01:07, 15F
→
09/14 01:08, , 16F
09/14 01:08, 16F
→
09/14 01:10, , 17F
09/14 01:10, 17F
最後的class Program裡面有寫這一段
Safe safe = new Safe();
所以我就把safe當成是instance了@@..
想請教一下
那個this傳的是物件的參考,是傳哪個物件的哪個參考呢?
我看得頭有點轉不過來..
謝謝您的幫忙
※ 編輯: bernachom 來自: 114.42.115.72 (09/14 01:32)
→
09/14 02:08, , 18F
09/14 02:08, 18F
→
09/14 02:09, , 19F
09/14 02:09, 19F
→
09/14 02:09, , 20F
09/14 02:09, 20F
請教一下
所以這裡的this指的就是Locksmith 所 new出來的東西囉?
我在翻書看看,因為一直沒找到Locksmith所new出來的東西
※ 編輯: bernachom 來自: 114.42.115.72 (09/14 02:29)
→
09/14 02:46, , 21F
09/14 02:46, 21F
→
09/14 16:03, , 22F
09/14 16:03, 22F
→
09/14 16:04, , 23F
09/14 16:04, 23F
→
09/14 16:08, , 24F
09/14 16:08, 24F
→
09/14 16:09, , 25F
09/14 16:09, 25F
→
09/14 16:09, , 26F
09/14 16:09, 26F
→
09/14 19:05, , 27F
09/14 19:05, 27F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章