我不想在一个类中编写我的所有代码,我可以在别处编写一个sub并从我的主类中调用它吗?
例如我有这个代码调用我在主类末尾写的一个navigateRecord Sub:
Private Sub btnNext_Click(sender As System.Object, e As System.EventArgs) Handles btnNext.Click
If inc <> maxrows - 1 Then
inc = inc + 1
NavigateRecords()
Else
MsgBox("No More Rows")
End If
End Sub
在课程结束时,我写了一下:
Private Sub NavigateRecords()
txtStdId.Text = ds.Tables("db1").Rows(inc).Item(0)
txtStdName.Text = ds.Tables("db1").Rows(inc).Item(1)
txtStdLname.Text = ds.Tables("db1").Rows(inc).Item(2)
txtStdAdress.Text = ds.Tables("db1").Rows(inc).Item(3)
End Sub
我可以在其他地方编写导航记录子,并从主类中调用它吗?并且谢谢你
答案 0 :(得分:2)
使用继承使代码可重用,封装,多态和简单,抽象是良好的计算机编程的承租人。
一个很好的例子是名为DateDiff的VB函数。您可以将其传递给日期以及您希望返回的间隔(小时,天,月,年)。
想象一下,如果您必须编写代码来确定代码所有部分中日期之间的差异,那么它将是过程式编程。我们都讨厌这个。最好制作一个函数,你可以从各种编码实现和目的中“抽象地”调用它,并以封装的方式重用。它是成为优秀程序员的关键之一。
如果您有一个名为PeopleRecord的类,其中包含4个字段:
Public Class PeopleRecord
Public Id as string 'Better to use an Integer
Public StdName as string
Public StdLname as string
Public StdAdress as string
End Class
然后在你的winform中使用BindingSource控件绑定到PeopleRecord类。
在“设计时”中,将每个TextBox控件设置为绑定到BindingSource中的字段。然后在PeopleRecord类中执行所有导航逻辑。
最大的好处是分离关注点并能够对逻辑进行单元测试,如果所有逻辑都嵌入在表示层(而不是in a control free Business Logic Library project)中,这很难做到。