optimize equals for UniquieID

This commit is contained in:
schedpas
2021-10-27 10:34:25 +02:00
parent 4ca12b19da
commit daf0e8f4a3

View File

@@ -91,8 +91,13 @@ namespace Pilz.Cryptography
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
var iD = obj as UniquieID<TargetType>; var iD = obj as UniquieID<TargetType>;
return iD != null && var leftHasID = (iD?.HasID ?? false);
_iD.Equals(iD._iD); var rightHasID = HasID;
if (leftHasID && rightHasID)
return _iD.Equals(iD._iD);
else
return false;
} }
public override int GetHashCode() public override int GetHashCode()
@@ -104,7 +109,7 @@ namespace Pilz.Cryptography
public static implicit operator UniquieID<TargetType>(string id) => new UniquieID<TargetType>() { ID = id }; public static implicit operator UniquieID<TargetType>(string id) => new UniquieID<TargetType>() { ID = id };
public static implicit operator UniquieID<TargetType>(int id) => new UniquieID<TargetType>() { ID = Convert.ToString(id) }; public static implicit operator UniquieID<TargetType>(int id) => new UniquieID<TargetType>() { ID = Convert.ToString(id) };
public static bool operator ==(UniquieID<TargetType> left, UniquieID<TargetType> right) => left.ID == right.ID; public static bool operator ==(UniquieID<TargetType> left, UniquieID<TargetType> right) => left.ID.Equals(right.ID);
public static bool operator !=(UniquieID<TargetType> left, UniquieID<TargetType> right) => left.ID != right.ID; public static bool operator !=(UniquieID<TargetType> left, UniquieID<TargetType> right) => !left.ID.Equals(right.ID);
} }
} }