這似乎是我應該知道的東西,也許它工作正常,但它看起來不對我。我正在尋找從數據庫查詢中添加一些數據到一個列表中,我創建了一個自定義的屬性類來保存。自定義屬性添加到列表
我的類:
Public Class MyClass
Private _Col1 As String
Private _Col2 As String
Private _Col3(,) As Object
Private _Col4 As String
Public Property Col1() As String
Get
Return _Col1
End Get
Set(ByVal value As String)
_Col1 = value
End Set
End Property
Public Property Col2() As String
Get
Return Col2
End Get
Set(ByVal value As String)
Col2= value
End Set
End Property
Public Property Col3() As Object(,)
Get
Return Col3
End Get
Set(ByVal value As Object(,))
Col3= value
End Set
End Property
Public Property Col4() As String
Get
Return Col4
End Get
Set(ByVal value As String)
_Col4= value
End Set
End Property
Sub New(ByVal col1 As String, ByVal col2 As String, ByVal col3 As Object, ByVal col4 As String)
_Col1= col1
_Col2= col2
_Col3 = col3
_Col4 = col4
End Sub
End Class
當我聲明並初始化我的列表(類),然後將數據添加到它:
Dim NList as New List(Of MyClass)
NList.Add(New MyClass("1", "2", (1,3), "3"))
當我看看列表項,我我在列表中看到8個項目,而不是4個。其中4個是方法,4個是變量。這是否正確以及類屬性如何操作?看來我正在通過向4個變量添加數據來浪費資源,並且如果必須循環訪問具有40k行的記錄集,我認爲它會增加性能。這是正確的方式嗎?我計劃將項目添加到列表中,並在程序的後面使用Find()函數,因此我覺得8個項目而不是4個是不需要的。
編輯:列表項
?NList.Item(0)
_Col1: "1" {String}
_Col2: "2"
_Col3: "(1,3)"
_Col4: "4"
Col3: "(1,3)"
Col4: "4"
Col1: "1"
Col2: "2"
當你'看看List項目,你正在查看MyClass的實例而不是列表中的項目,即一行代碼將添加一個項目到列表中,您可能會看到私有後臺字段以及屬性。 (每編輯)很明顯的情況:'_Col1'是你的私人支持字段,'Col1'是屬性。注意更新的VS版本允許自動實現的道具,這樣''公共屬性Col1()作爲字符串'是你在很多情況下所需要的,這將大大減少課程代碼 – Plutonix 2014-10-16 15:43:26
這些都是在上課時被填充的嗎?如果我們遍歷行並將它們添加到此列表中,這是否會影響性能? – Criel 2014-10-16 15:49:25
只有一件事是被設置的:'_col1',查看'Property Col1()'的代碼,它只是設置或返回相同的值 – Plutonix 2014-10-16 15:50:46