VB.NET - Неправильное использование переменных экземпляра?
Пожалуйста, посмотрите на код ниже:
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
являются сложными функциями в реальном приложении.