我從一個 Object 類繼承,我的類 clsMatrizDb 來處理 Array(,); 但是當我這樣做時,它會生成以下內容
public objPubMatriz as clsMatrizDb(,)
objPubMatriz (0,0) = 1
我收到一條錯誤訊息,提示您無法將整數轉換為 clsXArrayDb
我的班級是這樣繼承的
Public Class clsMatrizDb
Inherits Object
Private vIntRow As Integer
Private vIntColumn As Integer
Public Sub New()
MyBase.New
Me.vIntRow = 0
Me.vIntColumn = 0
End Sub
Public Sub New(ByVal pvIntRow As Integer, ByVal pvIntColumn As Integer)
Me.vIntRow = pvIntRow
Me.vIntColumn = pvIntColumn
End Sub
End Class
我錯過了什么?
uj5u.com熱心網友回復:
我的評論太長了,所以這是我的解釋:
我同意清理評論。
- 不需要繼承物件。默認情況下,類的實體是 Object。
- Integer 值的默認值為 0,因此無需在 New() sub 中顯式設定。如果您愿意,可以在變數宣告中明確設定它。
- 無需呼叫 MyBase.New 因為您實際上不是從基類/抽象類繼承。
您已經宣告錯誤是從整數轉換為 clsXArrayDb 但您根本沒有提到這個類。你是說 clsMatrizDb 嗎?
您得到的錯誤是因為您試圖將整數值 1 分配給 clsMatrizDb 型別的實體(物件)。
如果你想創建一個 clsMatrizDb 的實體,其 Row 和 Column 值初始化為 0, 0 那么你只需要宣告:
public objPubMatriz as New clsMatrizDb()
如果要創建具有不同 Row 和 Column 值(例如 2 和 4)的 clsMatrizDb 實體,則應宣告:
public objPubMatriz as New clsMatrizDb(2,4)
為了能夠為您的 clsMatrizDb 物件分配一個整數值,您將需要一個默認屬性,如 TnTinMn... 所述,它覆寫了您需要一個接受 Row 和 Column 值的建構式的需要。你會編碼:
public objPubMatriz as New clsMatrizDb()
objPubMatriz(2,4) = 1
默認屬性將被宣告為:
Default Public Property Item(ByVal pvIntRow As Integer, ByVal pvIntColumn As Integer) As Integer
并且您將設定 vIntRow 和 vIntColumn 的值作為此屬性實作的一部分。
如果要保留引數化建構式,則需要向類添加 Value 屬性:
public property Value as Integer
隨著用法:
public objPubMatriz as New clsMatrizDb(2,4)
objPubMatriz.Value = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/459298.html
上一篇:如何找出資料表中哪些行更改了值
