diff --git a/Math/EvolvingNatFloat.cs b/Math/EvolvingNatFloat.cs index 5efbb22a..17641e97 100644 --- a/Math/EvolvingNatFloat.cs +++ b/Math/EvolvingNatFloat.cs @@ -156,10 +156,16 @@ public static EvolvingNatFloat CreateFromBytes(BinaryReader reader) return evo; } - public override bool Equals([NotNullWhen(true)] object obj) + // Add a typed overload + // This way we avoid constant conversions of EvolvingNatFloat to object + public bool Equals(EvolvingNatFloat other) { - if (obj is not EvolvingNatFloat enf) return false; - return enf.Transform == Transform && enf.factor == factor; + return other.Transform == Transform && other.factor == factor; + } + + public override bool Equals(object obj) + { + return obj is EvolvingNatFloat other && Equals(other); } public static bool operator ==(EvolvingNatFloat left, EvolvingNatFloat right)