/// <summary> /// Gets the hash code of a member /// </summary> /// <param name="a">Member</param> /// <returns></returns> public int GetHashCode(DmdMemberInfo a) { if ((object)a == null) { return(0); } switch (a.MemberType) { case DmdMemberTypes.TypeInfo: case DmdMemberTypes.NestedType: return(GetHashCode((DmdType)a)); case DmdMemberTypes.Field: return(GetHashCode((DmdFieldInfo)a)); case DmdMemberTypes.Method: case DmdMemberTypes.Constructor: return(GetHashCode((DmdMethodBase)a)); case DmdMemberTypes.Property: return(GetHashCode((DmdPropertyInfo)a)); case DmdMemberTypes.Event: return(GetHashCode((DmdEventInfo)a)); } Debug.Fail($"Unknown type: {a.GetType()}"); return(0); }
void Write(DmdMemberInfo member) { switch (member.MemberType) { case DmdMemberTypes.TypeInfo: case DmdMemberTypes.NestedType: Write((DmdType)member); break; case DmdMemberTypes.Field: Write((DmdFieldInfo)member); break; case DmdMemberTypes.Constructor: case DmdMemberTypes.Method: Write((DmdMethodBase)member); break; case DmdMemberTypes.Property: Write((DmdPropertyInfo)member); break; case DmdMemberTypes.Event: Write((DmdEventInfo)member); break; default: Debug.Fail($"Unknown member: {member.GetType()}"); break; } }