title: Prevent StackOverflowException in Property-Definition in .Net
body: <p>In my class a 'Sub Process' is responsible to produce some values in a property (list(of integer)). This sub process should always be called when the value of the property is got.</p>
  
  <pre><code>MustInherit Class TestClassBase
     Private _OutputList As New List(Of Integer)
  
     Public Property OutputList() As List(Of Integer)
         Get
             Me.Process()
             Return _OutputList
         End Get
         Set(ByVal value As List(Of Integer))
             _OutputList = value
         End Set
     End Property
  
     Public MustOverride Sub Process()
  End Class
  
  
  Class TestClass
     Inherits TestClassBase
  
     Public Overrides Sub Process()
         OutputList.Clear()
         OutputList.Add(1)
         OutputList.Add(2)
         OutputList.Add(3)
     End Sub
  End Class
  
  
  Module ModuleTest
     Sub Main()
         Dim tmpList As New TestClass
         tmpList.Process()
     End Sub
  End Module
  </code></pre>
  
  <p>Calling Me.Process in the the Get-Part of the Property produces an StackOverflowException. Because of the TestclassBase as Mustinherit and the need of implement the 'Sub Process' in an inherited class I don't have access to the Private _Outputlist.</p>
  
  <p>What is the most elegant way to solve this problem?</p>