public bool HasOverride(Member abstractMember) { if (!abstractMember.IsAbstract) return false; var memberComparer = new MemberComparer(); // check if we have a member with the same signature // but with the override keyword var sameMembers = MembersFromThisAndBase .Where(x => x.IsOverride) .Where(x => !x.IsAbstract) .Where(x => memberComparer.IsSameAs(x, abstractMember)); return sameMembers.Any(); }
public virtual bool IsSameAs(Member first, Member second) { return IsEqual((dynamic)first, (dynamic)second); }
protected virtual bool IsEqual(Member first, Member second) { return false; }