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)
{
var iD = obj as UniquieID<TargetType>;
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<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 bool operator ==(UniquieID<TargetType> left, UniquieID<TargetType> right) => left.ID == 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);
public static bool operator !=(UniquieID<TargetType> left, UniquieID<TargetType> right) => !left.ID.Equals(right.ID);
}
}