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.CheckAgeCheckGender а такжеCheckAge используйте переменную экземпляра из суперкласса.A

Код в реальной среде просматривает 100 000 записей ежедневно в базе данных и удаляет те, гдеCheckGender а такжеCheckAge оба правда.Это плохой выбор дизайна для использования переменных экземпляра в этом сценарии? Меня всегда учили использовать локальные переменные. Я бы ожидалPerson объект для передачиCheckGender а такжеCheckAge на каждой петле. Или это действительно не имеет значения?

Обратите внимание, что приведенный выше код является гипотетическим примером.CheckGender а такжеCheckAge являются сложными функциями в реальном приложении.

Ответы на вопрос(2)

Ваш ответ на вопрос