Public Class BaseClass >> Public Function DataEntry() As Boolean >> Dim t As Type = Me.[GetType]() >> Dim minfo As MethodInfo = t.GetMethod("InitializeWithRow", BindingFlags.Instance Or BindingFlags.[Public]) >> If minfo.DeclaringType.Name <> "BaseClass" AndAlso DoCheck() Then >> Return InitializeWithRow() >> End If >> Return True >> End Function >> >> Public Overridable Function InitializeWithRow() As Boolean >> Return True >> End Function >> >> Public Function DoCheck() As Boolean >> 'Decide whether to call InitializeWithRow() >> Return True >> End Function >>End Class(Syntax not checked)