optimize equals for UniquieID
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user