请看下面的代码:
Public Class A
Public person1 As Person
End Class
Public Class B
Inherits A
Public Function CheckGender() As Boolean
If person1._Gender = "M" Then
CheckGender = True
End If
End Function
End Class
Public Class C
Inherits B
Public Function CheckAge() As Boolean
If person1._Age > 30 Then
CheckAge = True
End If
End Function
End Class
Public Class D
Inherits C
Public Sub SomeMethod()
Dim list As List(Of Person) = New List(Of Person)
Dim p1 As New Person("Ian", "M", 31)
Dim p2 As New Person("Susan", "F", 20)
Dim p3 As New Person("Mark", "M", 22)
list.Add(p1)
list.Add(p2)
list.Add(p3)
For Each Person As Person In list
person1 = Person
If CheckAge() And CheckGender() Then
'Do something
End If
Next
End Sub
Public Shared Sub Main()
Dim d As New D
d.SomeMethod()
End Sub
End Class
Public Class Person
Public _Name As String
Public _Gender As String
Public _Age As String
Public Sub New(ByVal Name As String, ByVal Gender As String, ByVal Age As Integer)
_Name = Name
_Gender = Gender
_Age = Age
End Sub
End Class
c.SomeMethod
循环遍历三个人并进行两个检查:b.CheckGender
和c.CheckAge
。 CheckGender
和CheckAge
使用超类A
的实例变量。
在实际环境中,代码每天循环处理100,000条数据库记录,并删除那些同时满足CheckGender
和CheckAge
条件的记录。在这种情况下,使用实例变量是一个糟糕的设计选择吗?我一直被教导使用局部变量。我希望在每次循环时将Person
对象传递给CheckGender
和CheckAge
。或者说这真的没有关系吗?
请注意,上面的代码只是一个假设性的例子。在实际应用程序中,CheckGender
和CheckAge
是复杂的函数。
collection.Count
属性等),那么使用它们是可以的。 - Ivaylo Slavov