Visual_Basic 板


LINE

※ 引述《kucom (kucom)》之銘言: : 請問一下以下問題: : (1) : Dim benz as new car() : Dim BMW as new car() : Dim MyCar as car ===>宣告MyCar為car的參考 : MyCar=benz ===>將MyCar指向benz,故MyCar,benz是指同一個物件, : 讀取同樣的記憶體配置 : 那我可以這樣寫嗎? : Dim MyCar as new car() : MyCar=benz : 這樣的寫法有錯嗎? : MyCar有自已的記憶體配置,還可以指向其他的物件嗎? MyCar在使用New關鍵字時,配置了一整塊屬於它的空間 但benz沒有 就像MyCar跟benz原本都是一張設計圖 而MyCar使用了New方法取得一堆材料製成一輛車 benz此時還只是一張設計圖 但你卻要求將MyCar的內容「換成那張設計圖」 這個在語法上沒有錯,但是會造成兩者都只剩下設計圖 原本製造出來的車子就消失不見了 : (2) : Dim MyCar as car 是什麼意思? : 是指宣告成car的參考,所以只能去接由car類別new出來的物件嗎? 是這樣沒錯,但如果裡面有是基礎型態的成員,如Integer 那就可以直接指定這個成員的值(有使用過New的話,沒使用過New不能給值) : (3) : 假如 : Dim benz as new car() : Dim ford as new car() : 可以這樣寫嗎? : benz=ford : 無論本身是物件或是參考都可以承接同樣型態的值嗎? : 若不行,是為何? : 若要去接物件,一定要用參考去接嗎? : 像這樣 : Dim MyCar as car : MyCar=ford : 還是只要承接的型態是相同,都可以, : 像這樣 : benz=ford 是成立的? 參考如果給他一個物件 其實就等於將這個物件給予一個別名 以後面你的做法來說 等於是幫ford這輛車取了一個叫做Benz的別名 不管對誰存取,都是修改到同一輛車 而前面的情況,則會致使Benz放棄本身的實體車輛,轉變成為Ford的別名 : (4) : 之前有看到一本書這樣寫,不是很懂它的寫法: : Dim ds as new dataset : ds.ReadXml("person.xml") : dim dc as DataColumn=ds.Tables("學生").columns("學號") : 這裡的dc是物件還是參考? 為什麼可以這樣寫? dc去承接同類別的物件嗎? : ds.Tables("學生").columns("學號") ===>是DataColumn的物件嗎? 所以dc才可以去接 : 那寫成dim dc as new DataColumn=ds.Tables("學生").columns("學號") 可以嗎? : 謝謝大家! 這邊就不多說了,觀念跟上面一樣 只要等號右邊的東西是一個經過New出來的物件 就可以給予任何型態相同的類別參考 舉個例子好了 假如開一個Window Form 在Class底下直接宣告全域變數 Dim benz As Car (假定有Car這個類別) 然後接著在Form.Load的事件處理函式裡面 打入 Dim myCar As Car = New Car() 下一行打 benz = myCar 這三行程式代表的意義 就是我宣告有個叫做Banz的車,但是目前這輛車不存在 然後我自行創造了一個叫做myCar得新車,沒有其他標籤,就叫做myCar 此時Benz公司覺得我設計的車子不錯,要讓我的車子掛Benz的才出去賣 所以就讓剛剛那輛還沒有實體的車,指向我剛剛創造出來的新車 此時Benz就指向我所創造的那輛車,但同時這輛車也仍然保有myCar這個名字 只不過,一離開Form.Load函式以後 因為離開了宣告myCar的範圍 理論上剛才那輛創出來的車子因為失去名字應該會消失 但是你剛剛在全域變數幫它取了一個叫做Benz的名字 所以這輛車直到程式結束或是你自行銷燬之前(Benz = nothing) 都會保持存在供你存取和利用 這樣看得懂嗎? -- 希望有用 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.236.89







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