public static bool operator ==(AbstractActor aActorA, AbstractActor aActorB) { // if only one is null if (MathsUtility.XOR(object.Equals(aActorA, null), object.Equals(aActorB, null))) { // can't be equal if only one is null return(false); } else if (object.Equals(aActorA, null) && object.Equals(aActorB, null)) { // both null, so, technically equal? return(true); } else { // neither null, so compare names return(aActorA.Equals(aActorB)); } }