Class VB.Net

Imports System
Imports System.Windows.Forms
Imports System.Drawing.Text
Imports System.Drawing
Imports System.Drawing.Drawing2D
Public Class MainClass
    
    Shared Sub Main(ByVal args As String())
      Dim person As New CPerson("A", "B", 1983)
      Dim iAgeArray As IAge() = New IAge(1) {}
      iAgeArray(0) = person
      iAgeArray(1) = New CPerson("C", "D", 1999)
      Console.WriteLine( person.ToString() & ": " & _
         person.Name & vbCrLf & "Age is " & person.Age )
      Dim ageReference As IAge
      For Each ageReference In iAgeArray
         Console.WriteLine( ageReference.Name & ": " & _
            "Age is " & ageReference.Age )
      Next
    End Sub
End Class
Public Interface IAge
   ReadOnly Property Age() As Integer
   ReadOnly Property Name() As String
End Interface
Public Class CPerson
   Implements IAge
   Private mYearBorn As Integer
   Private mFirstName As String
   Private mLastName As String
   Public Sub New(ByVal firstNameValue As String, _
      ByVal lastNameValue As String, _
      ByVal yearBornValue As Integer)
      mFirstName = firstNameValue
      mLastName = lastNameValue
      If (yearBornValue > 0 AndAlso _
         yearBornValue <= Date.Now.Year) Then
         mYearBorn = yearBornValue
      Else
         mYearBorn = Date.Now.Year
      End If
   End Sub
   ReadOnly Property Age() As Integer _
      Implements IAge.Age
      Get
         Return Date.Now.Year - mYearBorn
      End Get
   End Property
   ReadOnly Property Name() As String _
      Implements IAge.Name
      Get
         Return mFirstName & " " & mLastName
      End Get
   End Property
End Class