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

时间:2015-08-28 22:29:23

标签: vb.net-2010

如何在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

1 个答案:

答案 0 :(得分:1)

由于尚未构建对象,因此无法从那里调用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