如何从 vb.net 中的对象 class 继承

How to inherit from an Object class in vb.net

我继承自一个对象 class,我的 class clsMatrizDb 来处理一个 Array(,);但是当我这样做时会生成以下内容

public objPubMatriz as clsMatrizDb(,)
objPubMatriz (0,0) = 1

我收到一条错误消息,提示您无法将整数转换为 clsXArrayDb

我的class是这样继承的

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

我错过了什么?

我的评论太长了,所以这是我的解释:

我同意清理评论。

  • 不需要Inherits Object。 class 的一个实例默认是一个对象。
  • Integer 值的默认值为 0,因此无需在 New() sub 中明确设置。如果愿意,请在变量声明中明确设置它。
  • 不需要调用 MyBase.New 因为你实际上不是继承自 base/abstract class.

您已声明错误是从整数转换为 clsXArrayDb,但您根本没有提及此 class。你是说 clsMatrizDb 吗?

您收到的错误是因为您试图将整数值 1 分配给 clsMatrizDb 类型的实例(对象)。

如果你想创建一个 clsMatrizDb 的实例,Row 和 Column 的值初始化为 0, 0 那么你只需要声明:

public objPubMatriz as New clsMatrizDb()

如果您想创建一个具有不同行值和列值(例如 2 和 4)的 clsMatrizDb 实例,那么您需要声明:

public objPubMatriz as New clsMatrizDb(2,4)

为了能够为您的 clsMatrizDb 对象分配一个整数值,您将需要一个默认值 属性,如 TnTinMn 所述...和列值。你会编码:

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 的值作为此 属性 实施的一部分。

如果要保留参数化构造函数,则需要将值 属性 添加到 class:

public property Value as Integer

使用情况:

public objPubMatriz as New clsMatrizDb(2,4)
objPubMatriz.Value = 1