none
[VB 2005]關於Function 的基本宣告法 RRS feed

  • 問題

  • 各位老師好
    我今天宣告Function遇到了問題
    問題是這樣:

    我想宣告一個Function是

        Public Function Save_1_MT_P(ByVal ID As Long, ByVal afID As Long,  ByVal Val() As Double, ByVal Pos() As Double) As Boolean
        End Function
    問題來了

    今天我再使用此Function時

    Save_1_MT_P(MT_P_TestCounter, NowTestCount, Draw_P_1(Draw_P_1.Length - 1), Draw_P_Pos_1(Draw_P_Pos_1.Length - 1))

    出現了錯誤提示:
    錯誤 1 型別 'Double' 的值無法轉換成 '1-維陣列屬於 Double'。 在Draw_P_1(Draw_P_1.Length - 1), Draw_P_Pos_1(Draw_P_Pos_1.Length - 1)  的地方




    其他宣告地方:

    Public Draw_P_1() As Double
    Public Draw_P_Pos_1() As Double




    謝謝老師
    易耳易兒
    2009年4月27日 上午 02:29

解答

  • Draw_P_1(Draw_P_1.Length - 1) 是指傳 Draw_P_1 陣列中索引為 (Draw_P_1.Length - 1) 的值,表示傳的是 Double,不是 Double(),當然會擲出那個例外。
    要嘛就把宣告寫成 Double,或者直接傳 Draw_P_1 陣列進去,還是另外建一個陣列傳進去也可以,總之一定要是 Double() 就對了。
    小人物一枚。
    • 已標示為解答 Allen_Yang 2009年4月28日 上午 06:08
    2009年4月27日 上午 02:37
    版主
  • 二選一

    傳遞陣列

    Public Function Save_1_MT_P(ByVal ID As Long, ByVal afID As Long,  ByVal Val() As Double, ByVal Pos() As Double) As Boolean
    ' ...
    Save_1_MT_P(MT_P_TestCounter, NowTestCount, Draw_P_1, Draw_P_Pos_1)
    

     

    傳遞值

    Public Function Save_1_MT_P(ByVal ID As Long, ByVal afID As Long,  ByVal Val As Double, ByVal Pos As Double) As Boolean
    ' ...
    Save_1_MT_P(MT_P_TestCounter, NowTestCount, Draw_P_1(Draw_P_1.Length - 1), Draw_P_Pos_1(Draw_P_Pos_1.Length - 1))
    

    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年4月27日 上午 03:20

所有回覆

  • Draw_P_1(Draw_P_1.Length - 1) 是指傳 Draw_P_1 陣列中索引為 (Draw_P_1.Length - 1) 的值,表示傳的是 Double,不是 Double(),當然會擲出那個例外。
    要嘛就把宣告寫成 Double,或者直接傳 Draw_P_1 陣列進去,還是另外建一個陣列傳進去也可以,總之一定要是 Double() 就對了。
    小人物一枚。
    • 已標示為解答 Allen_Yang 2009年4月28日 上午 06:08
    2009年4月27日 上午 02:37
    版主
  • 二選一

    傳遞陣列

    Public Function Save_1_MT_P(ByVal ID As Long, ByVal afID As Long,  ByVal Val() As Double, ByVal Pos() As Double) As Boolean
    ' ...
    Save_1_MT_P(MT_P_TestCounter, NowTestCount, Draw_P_1, Draw_P_Pos_1)
    

     

    傳遞值

    Public Function Save_1_MT_P(ByVal ID As Long, ByVal afID As Long,  ByVal Val As Double, ByVal Pos As Double) As Boolean
    ' ...
    Save_1_MT_P(MT_P_TestCounter, NowTestCount, Draw_P_1(Draw_P_1.Length - 1), Draw_P_Pos_1(Draw_P_Pos_1.Length - 1))
    

    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年4月27日 上午 03:20
  • 謝謝兩位老師

    問題已經解決


    易耳易兒
    2009年4月28日 上午 06:08