台灣最大程式設計社群網站
線上人數
1299
 
會員總數:239330
討論主題:185676
歡迎您免費加入會員
討論區列表 >> VB.NET >> 遇到不會用的程式碼 該如何找出方向
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
遇到不會用的程式碼 該如何找出方向
價值 : 200 QP  點閱數:247 回應數:4

樓主

VB_2017
門外漢
0 6
50 2
發送站內信

這是一個用 實作 Finalize 和 Dispose 以去除 Unmanaged 當中用過的垃圾 的範例

第一次遇到這種範例 不知道如何著手 去用與模仿他 連遇到的第一個
Console.WriteLine(vbNewLine + "[{0}].Base.Dispose()", instName)
都不知道怎麼顯示當中的內容[{0}].Base.Dispose()

我只會自己開一個專案 把這class放在main外面 然後main裡面 用一個變數dim a as Base之後就不知道怎麼下手了...

' Design pattern for a base class.
Public MustInherit Class Base
Implements IDisposable

Private disposed As Boolean = False
Private instName As String
Private trackingList As List(Of Object)

Public Sub New(ByVal instanceName As String, ByVal tracking As List(Of Object))
MyClass.instName = instanceName
trackingList = tracking
trackingList.Add(Me)
End Sub

Public ReadOnly Property InstanceName() As String
Get
Return instName
End Get
End Property

'Implement IDisposable.
Public Overloads Sub Dispose() Implements IDisposable.Dispose
Console.WriteLine(vbNewLine + "[{0}].Base.Dispose()", instName)
Dispose(True)
GC.SuppressFinalize(Me)
End Sub

Protected Overridable Overloads Sub Dispose(ByVal disposing As Boolean)
If disposed = False Then
If disposing Then
' Free other state (managed objects).
Console.WriteLine("[{0}].Base.Dispose(true)", instName)
trackingList.Remove(Me)
Console.WriteLine("[{0}] Removed from tracking list: {1:x16}",instanceName, MyClass.GetHashCode())
Else
Console.WriteLine("[{0}].Base.Dispose(false)", instName)
End If
disposed = True
End If
End Sub

Protected Overrides Sub Finalize()
' Simply call Dispose(False).
Console.WriteLine(vbNewLine + "[{0}].Base.Finalize()", instName)
Dispose(False)
End Sub
End Class


搜尋相關Tags的文章: [ VB.net ] , [ 新手 ] , [ 高手 ] , [ class ] ,
本篇文章發表於2017-03-01 11:14
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

誰是誰
檢舉此回應
查 MSDN
https://msdn.microsoft.com/zh-tw/library/586y06yf(v=vs.110).aspx
本篇文章回覆於2017-03-01 13:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

香帥
檢舉此回應
除了以上之外還可以
1.goole 關鍵字 範例 尋找看得懂的解答。
2.小舖高手很多,po到這求救,會的人若有時間,自然會來解答。
本篇文章回覆於2017-03-01 20:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

香帥
檢舉此回應
goole 少打一個字應該為 google
本篇文章回覆於2017-03-01 20:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

Always
檢舉此回應
使用建構函式和解構函式
https://msdn.microsoft.com/zh-tw/library/2z08e49e(v=vs.90).aspx

MustInherit class (抽象類別)
https://msdn.microsoft.com/zh-tw/library/aee8f02w.aspx

以上給您參考
本篇文章回覆於2017-03-02 08:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.