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); } }