From daf0e8f4a3b95517cc54bc2c617b851bb3e66f2c Mon Sep 17 00:00:00 2001 From: schedpas Date: Wed, 27 Oct 2021 10:34:25 +0200 Subject: [PATCH] optimize equals for UniquieID --- Pilz.Cryptography/UniquieID.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Pilz.Cryptography/UniquieID.cs b/Pilz.Cryptography/UniquieID.cs index ff7ee07..5437b1f 100644 --- a/Pilz.Cryptography/UniquieID.cs +++ b/Pilz.Cryptography/UniquieID.cs @@ -91,8 +91,13 @@ namespace Pilz.Cryptography public override bool Equals(object obj) { var iD = obj as UniquieID; - return iD != null && - _iD.Equals(iD._iD); + var leftHasID = (iD?.HasID ?? false); + var rightHasID = HasID; + + if (leftHasID && rightHasID) + return _iD.Equals(iD._iD); + else + return false; } public override int GetHashCode() @@ -104,7 +109,7 @@ namespace Pilz.Cryptography public static implicit operator UniquieID(string id) => new UniquieID() { ID = id }; public static implicit operator UniquieID(int id) => new UniquieID() { ID = Convert.ToString(id) }; - public static bool operator ==(UniquieID left, UniquieID right) => left.ID == right.ID; - public static bool operator !=(UniquieID left, UniquieID right) => left.ID != right.ID; + public static bool operator ==(UniquieID left, UniquieID right) => left.ID.Equals(right.ID); + public static bool operator !=(UniquieID left, UniquieID right) => !left.ID.Equals(right.ID); } }