从 VB.net 中的 Child 调用 Base 函数

Call Base functions from Child in VB.net

如何调用vb.net中的基函数?

Imports System.Data.Sql
Imports System.Data.SqlClient

Public Class Box
    Public length As Double   ' Length of a box
    Public breadth As Double   ' Breadth of a box
    Public height As Double    ' Height of a box
    Public function setLength(ByVal len As Double)
        length = len
    End Sub
    Public Sub setBreadth(ByVal bre As Double)
        breadth = bre
    End Sub
    Public Sub setHeight(ByVal hei As Double)
        height = hei
    End Sub
    Public Function getVolume() As Double
        Return length * breadth * height
     End Function
 End Class

使用MyBase调用基函数时提示语法错误

Public Class myChild : Inherits Box
    'box 1 specification
    MyBase.setLength(6.0)
    MyBase.setBreadth(7.0)
    MyBase.setHeight(5.0)

    'box 2 specification
    MyBase.setLength(12.0)
    MyBase.setBreadth(13.0)
    MyBase.setHeight(10.0) 

    'volume of box 1
    volume = MyBase.getVolume()
    Console.WriteLine("Volume of Box1 : {0}", volume)

    'volume of box 2
    volume = MyBase.getVolume()
End Class

您不能从那里调用 MyBase,因为该对象尚未构建。

更好的实施方式是:

Box.vb

Public Class Box
    Private mLength As Double   ' Length of a box
    Private mBreadth As Double   ' Breadth of a box
    Private mHeight As Double    ' Height of a box

    Public Sub New(ByVal length As Double, ByVal breadth As Double, ByVal height As Double)
        Me.mLength = length
        Me.mBreadth = breadth
        Me.mHeight = height

    End Sub
    Public Property Length As Double
        Get
            Return Me.mLength
        End Get
        Set(ByVal value As Double)
            Me.mLength = value
        End Set
    End Property

Public Property Breadth As Double
    Get
        Return Me.mBreadth
    End Get
    Set(ByVal value As Double)
        Me.mBreadth = value
    End Set
End Property

Public Property Height As Double
    Get
        Return Me.mHeight
    End Get
    Set(ByVal value As Double)
        Me.mHeight = value
    End Set
End Property

Public Function getVolume() As Double
    Return Length * Breadth * Height
End Function
End Class

Child.vb

Public Class Child : Inherits Box

    Public Sub New(ByVal length As Double, ByVal breadth As Double, ByVal height As Double)
        MyBase.New(length, breadth, height)
    End Sub

End Class

例子

 Sub Main()
        Dim box1 As New Child(6.0, 7.0, 5.0)
        Dim box2 As New Child(12.0, 13.0, 10.0)

        Console.WriteLine("box1 volume is: {0}", box1.getVolume())
        Console.WriteLine("box2 volume is: {0}", box2.getVolume())
    End Sub