public virtual IEnumerable <IMethod> GetAllMethods() { foreach (var item in Methods) { yield return(item); } if (Father == null) { yield break; } foreach (var item in Father.GetAllMethods()) { yield return(item); } }