feat: ensured all primitives have ToString, GetHashCode & Equals methods
This commit is contained in:
@@ -251,6 +251,34 @@ public class Shape2D(List<Vector2D> vertices) : IEnumerable<Vector2D>
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether the specified object is equal to the current <see cref="Shape2D"/>.
|
||||
/// </summary>
|
||||
/// <param name="obj">The object to compare with the current <see cref="Shape2D"/>.</param>
|
||||
/// <returns><see cref="true"/> if the specified object is equal to the current <see cref="Shape2D"/>; otherwise, <see cref="false"/>.</returns>
|
||||
public override bool Equals(object? obj) => obj is Shape2D shape2D && _vertices.Equals(shape2D._vertices);
|
||||
|
||||
/// <summary>
|
||||
/// Generates a hash code for the <see cref="Shape2D"/>.
|
||||
/// </summary>
|
||||
/// <returns>A hash code for the <see cref="Shape2D"/>.</returns>
|
||||
public override int GetHashCode() => System.HashCode.Combine(Vertices);
|
||||
|
||||
/// <summary>
|
||||
/// Converts the <see cref="Shape2D"/> to its string representation.
|
||||
/// </summary>
|
||||
/// <returns>A string representation of the <see cref="Shape2D"/>.</returns>
|
||||
public override string ToString()
|
||||
{
|
||||
System.Text.StringBuilder stringBuilder = new(Vertices[0].ToString());
|
||||
for (int i = 1; i < Vertices.Count; i++)
|
||||
{
|
||||
stringBuilder.Append(", ");
|
||||
stringBuilder.Append(Vertices[i].ToString());
|
||||
}
|
||||
return $"{nameof(Shape2D)}({stringBuilder})";
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public IEnumerator<Vector2D> GetEnumerator() => Vertices.GetEnumerator();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user