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