Object Equals: ¿cuál es la lógica básica para objetos puros o tipos de referencia que no anulan Equals?

Llegué aquí después de leeresta y no encontré una respuesta relevante. Por lo tanto, no marque esto como un duplicado hasta que lea la pregunta completa.

He estado usando un reflector y examinéObject.EqualsLo que vi es:

[__DynamicallyInvokable, TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public virtual bool Equals(object obj)
{
    return RuntimeHelpers.Equals(this, obj);
}

YRuntimeHelpers.Equals Se ve como esto:

// System.Runtime.CompilerServices.RuntimeHelpers
/// <summary>Determines whether the specified <see cref="T:System.Object" /> instances are considered equal.</summary>
/// <returns>true if the <paramref name="o1" /> parameter is the same instance as the <paramref name="o2" /> parameter, or if both are null, or if o1.Equals(o2) returns true; otherwise, false.</returns>
/// <param name="o1">The first object to compare. </param>
/// <param name="o2">The second object to compare. </param>
[SecuritySafeCritical]
[MethodImpl(MethodImplOptions.InternalCall)]
public new static extern bool Equals(object o1, object o2);

Ahora no puedo ver la implementación deRuntimeHelpers.Equals pero por la descripción, si ambos objetos no son la misma instancia y no son nulos, llamará alobject.Equals método de nuevo y me pondría en un bucle (estoy hablando deobjetos puros)

Cuando digo objetos puros quiero decir algo como esto:

object pureObj1 = new object();
object pureObj2 = new object();
bool areEql = pureObj1.Equals(pureObj2);

Por documentación esto debería llamarObject.Equals y obtener unstackoverflow recusivo. Supongo que tal vez la documentación es incorrecta y esto verificaigualdad de referencia para objetos básicos, pero quería estar seguro.

Línea de fondo:
Al comparar dos objetos puros (por ejemplo, no lanzar una cadena en el objeto) a través de unEquals llamada: ¿cómo determina si son iguales? - ¿Qué pasa si no anulo elEquals método y llamoEquals en dos objetos?
PD. ¿hay alguna forma de que pueda ver elRuntimeHelpers.Equals ¿código fuente?

Respuestas a la pregunta(3)

Su respuesta a la pregunta