refactor: removed the IComparable from IIdentifiable and implemented in extension method
This commit is contained in:
@@ -3,7 +3,7 @@ namespace Engine.Core;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents any instance in the engine with an id.
|
/// Represents any instance in the engine with an id.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IIdentifiable : System.IComparable<IIdentifiable>
|
public interface IIdentifiable
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Event triggered when the <see cref="Id"/> of the <see cref="IIdentifiable"/> changes.
|
/// Event triggered when the <see cref="Id"/> of the <see cref="IIdentifiable"/> changes.
|
||||||
|
|||||||
@@ -101,6 +101,4 @@ public abstract class BaseEntity : IEntity
|
|||||||
|
|
||||||
protected BaseEntity() => Id = Guid.NewGuid().ToString("D");
|
protected BaseEntity() => Id = Guid.NewGuid().ToString("D");
|
||||||
protected BaseEntity(string id) => Id = id;
|
protected BaseEntity(string id) => Id = id;
|
||||||
|
|
||||||
public int CompareTo(IIdentifiable? other) => Id.CompareTo(other?.Id);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,5 +3,10 @@ namespace Engine.Core;
|
|||||||
public static class IdentifiableExtensions
|
public static class IdentifiableExtensions
|
||||||
{
|
{
|
||||||
public static bool IsIdentical(this IIdentifiable? left, IIdentifiable? right)
|
public static bool IsIdentical(this IIdentifiable? left, IIdentifiable? right)
|
||||||
=> left?.CompareTo(right) == 0;
|
{
|
||||||
|
if (left == null || right == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return left?.Id?.CompareTo(right?.Id) == 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user