none
關於 Dispose() 方法 RRS feed

  • 問題

  • Dim dt(100) As Datatable


    在 Insert 事件下:

    Dim index As Integer

    While (dt(index) IsNot Nothing)
                        index += 1
    End While

    dt(Index) = New DataTable



    在Delete事件下:

    dt( 欲刪除之index ).Dispose()



    假設我現在接連new了一些
    Datatable,
    可是在Delete可能會從中刪除幾筆!
    可是
    Dispose 掉的 Datatable 在 While (dt(index) IsNot Nothing) 會抓不到?
    是因為
    Dispose 不是讓他 Is Noting 嗎?
    那該怎麼做比較好呢?因為不想浪費太多空間。

    謝謝指教
    2008年11月13日 下午 12:25

解答

  • 只要曾經參照物件,沒做過

    dt(index) = Nothing

    的話

     

    IsNothing -> False

     

    IsNothing 只是檢查有沒有參照物件,並不檢查物件是否消滅。

     

    亦即,dt(index) 雖然被消滅,但仍然被參照,所以你要這樣判斷的話,仍然還是要做 dt(index) = Nothing

     

    2008年11月13日 下午 12:49

所有回覆

  • 只要曾經參照物件,沒做過

    dt(index) = Nothing

    的話

     

    IsNothing -> False

     

    IsNothing 只是檢查有沒有參照物件,並不檢查物件是否消滅。

     

    亦即,dt(index) 雖然被消滅,但仍然被參照,所以你要這樣判斷的話,仍然還是要做 dt(index) = Nothing

     

    2008年11月13日 下午 12:49
  • 謝謝!! 試成功了!!
    2008年11月15日 上午 10:14