none
VB2010是否有變數陣列這種寫法?不是陣列變數喔! RRS feed

  • 問題

  • 各位前輩大家好~我使用的是VB2010

    問題是這樣的   最近剛好把"物件"陣列這東西有點弄清楚寫法了

    例如:把一些已存在的相同物件的再把它們包進陣列裡

    Public IOPortPicture As PictureBox()

     IOPortPicture = New PictureBox(2) {PictureBox0, PictureBox6, PictureBox7}

    所以使用時IOPortPicture(0)實際上就是PictureBox0
            而IOPortPicture(1)實際上就是PictureBox6


    那重點來了

    我想把變數也弄成"變數"陣列

    我以我把原本3個變數 PortA,PortB,PortC 重新包裝成 PortVal()陣列


       Public PortVal() As Integer
     
       PortVal = New Integer(2) {PortA, PortB, PortC}

    程式沒出現錯誤啦,但陣列值卻不是我想要的結果

    PortVal(0)=PortA
    PortVal(1)=PortB
    PortVal(2)=PortC

    我有調出來看PortVal的值都是0

    所以,我想問是否真的有"變數陣列"這東西?
    還是說~這種用法有其專業的術語?而不是我自己想的變數陣列?

    那有沒有什麼方法可達成我想要的這種功能呢?


    問題GOOGEL過了,但答案幾乎是如何設定陣列變數!!!

    麻煩各為前輩了~請指教^^


    • 已編輯 魚骨頭 2013年7月5日 上午 11:58 標題少打"不是"
    2013年7月5日 上午 07:50

解答

  • 你的意思是

    有3個變數a,b,c

    想用一個陣列PortVal()去存放這些變數的值

    然後不管是更改PortVal()還是更改a,都會去變更存放值  

    是嗎?

    如果存放的是物件,由於物件是用參考位置,所以沒問題

    但數字型態就有問題了

    • 已編輯 GISK 2013年7月5日 上午 08:03 補充文字
    • 已標示為解答 魚骨頭 2013年7月5日 下午 12:03
    2013年7月5日 上午 08:01

所有回覆

  • 你的意思是

    有3個變數a,b,c

    想用一個陣列PortVal()去存放這些變數的值

    然後不管是更改PortVal()還是更改a,都會去變更存放值  

    是嗎?

    如果存放的是物件,由於物件是用參考位置,所以沒問題

    但數字型態就有問題了

    • 已編輯 GISK 2013年7月5日 上午 08:03 補充文字
    • 已標示為解答 魚骨頭 2013年7月5日 下午 12:03
    2013年7月5日 上午 08:01
  • 補充 GISK 的內容,

    應該說 Value Type 會有問題,不只有數字型別。

    實值型別VALUE TYPE


    理直氣和,切記。

    Blog: http://blog.kkbruce.net

    Book:《ASP.NET MVC 4 網站開發美學

    2013年7月5日 上午 08:29
  • 實質型別和參考型別在運作上是有差的.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年7月5日 上午 09:20
    版主
  • 感謝大家指教~

    實質型別和參考型別...還是有看沒有懂....XD

    不過~我知道問題的答案了~

    好吧~我去想想怎麼改寫程式了~

    繼續修行去~

    謝謝~

    2013年7月5日 下午 12:02
  • 請搜尋線上手冊。在 VB2003 以前沒有定義名稱,我稱之為樹狀陣列。在 VB2005 線上手冊使用不規則陣列一詞。

    除底層可以用強型別陣列外,外層均須使用 Object 包,因為指向的是陣列指標,而非原先的陣列索引。

    例如:

    a = Array(Array(0,1,2,3), Array(4,5,6))

    b = a

    在 VB6 不規則陣列使用 = 是複製,在 Net 內是參照。

    比如說,一個用 eMail 傳給你印一份附件,一個是告訴你 Server 上的 UNC 路徑。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2013年7月5日 下午 03:39
  • 感謝大家指教~

    實質型別和參考型別...還是有看沒有懂....XD

    不過~我知道問題的答案了~

    好吧~我去想想怎麼改寫程式了~

    繼續修行去~

    謝謝~

    練習程式不是盲寫, 型別在 .Net 是非常重要的概念, 我倒是建議你應該先弄懂型別的問題.

    實值型別和參考型別


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年7月6日 上午 02:40
    版主
  • 我不足的部分會儘量找時間補~

    真的很抱歉~

    也很感謝貼文章讓我去看~

    而且我有時候是真的必須遇到問題才能弄懂其中源由

    不然我有些資料是有看過的..但就是那種看懂字確不懂它意義是什麼的那種^^"

    感謝 心冷熱情熄 與 Bill 2位前輩的出手指導

    2013年7月6日 上午 08:54