首页 > 解决方案 > 如何在按钮中显示派生类中子例程的结果

问题描述

派生类中子例程的窗口按钮中显示的结果一直给我零。我不确定我实例化类的方式是错误的还是我的计算错误,因为我是编程新手。

这是基类:

Public Class Books
    Private _NumberOfBooks As Integer
    Private _Points As Decimal
   
    Property NumberOfBooks() As Integer
        Get
            Return _NumberOfBooks
        End Get
        Set(value As Integer)
            _NumberOfBooks = value
        End Set
    End Property
    
    Property Points() As Decimal
        Get
            Return _Points
        End Get
        Set
            _Points = Value
        End Set
    End Property

    Sub CalculateNumberOfBooks()
        NumberOfBooks = 0       
        NumberOfBooks += NumberOfBooks       
    End Sub
   
    Sub CalculatePoints()
        If NumberOfBooks > 0 And NumberOfBooks <= 3 Then
            Points = NumberOfBooks * 10
        ElseIf NumberOfBooks > 3 And NumberOfBooks <= 6 Then
            Points = NumberOfBooks * 15
        ElseIf NumberOfBooks > 6 Then
            Points = NumberOfBooks * 20
        End If
    End Sub
End Class

下面是派生类:

Public Class ElementaryGrades
    Inherits Books
    Dim _NumberOfBooksRead As Integer
    Dim _Point As Decimal
    Property NumberOfBooksRead() As Integer
        Get
            NumberOfBooksRead = _NumberOfBooksRead
        End Get
        Set(ByVal Value As Integer)
            _NumberOfBooksRead = Value
        End Set
    End Property

    Property Point() As Decimal
        Get
            Point = _Point
        End Get
        Set(ByVal Value As Decimal)
            _Point = Value
        End Set
    End Property

    Sub New()
        MyBase.CalculateNumberOfBooks()
        NumberOfBooksRead = NumberOfBooks
    End Sub

    Sub PointCalculation()
        MyBase.CalculatePoints()
        Point = Points
    End Sub
End Class

下面是显示结果的窗口窗体:

Public Class Form1   
    Dim Operation As New Books
    Dim Calc As New ElementaryGrades
   

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        Dim NofBooks As Integer
        NofBooks = Integer.Parse(TextBox1.Text)
        NofBooks = Operation.NumberOfBooks.ToString
    End Sub

    Private Sub PointsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PointsToolStripMenuItem.Click

        If RadioButton1.Checked Then
            Button1.Text = Calc.Point.ToString       
        End If
    End Sub
End Class

标签: vb.net

解决方案


推荐阅读