From 53ca7f89225f4b28c1b66ce41b8eb8536f33b33c Mon Sep 17 00:00:00 2001 From: robloo Date: Sun, 27 Feb 2022 23:56:03 -0500 Subject: [PATCH] Use custom hash algo for .NET Standard 2.0 support --- src/Avalonia.Visuals/Media/HsvColor.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Visuals/Media/HsvColor.cs b/src/Avalonia.Visuals/Media/HsvColor.cs index 39ddcf7de6..c46d3bf4b8 100644 --- a/src/Avalonia.Visuals/Media/HsvColor.cs +++ b/src/Avalonia.Visuals/Media/HsvColor.cs @@ -143,7 +143,16 @@ namespace Avalonia.Media /// The hashcode for this object. public override int GetHashCode() { - return HashCode.Combine(A, H, S, V); + // Same algorithm as Color + // This is used instead of HashCode.Combine() due to .NET Standard 2.0 requirements + unchecked + { + int hashCode = A.GetHashCode(); + hashCode = (hashCode * 397) ^ H.GetHashCode(); + hashCode = (hashCode * 397) ^ S.GetHashCode(); + hashCode = (hashCode * 397) ^ V.GetHashCode(); + return hashCode; + } } ///