.NET Standard 2.1 / .NET Core 3引入 System.HashCode了快速将字段和值组合为哈希码的功能,而无需关心底层实现。
但是,它仅提供Combine最多 8 个值的方法重载。如果我有一个包含 9 个值(3x3 矩阵)甚至 16 个值(4x4 矩阵)的类,我该怎么办?
我应该简单地将两个Combine调用相加,并在每个调用中传递尽可能多的值吗?
public override int GetHashCode()
=> HashCode.Combine(M11, M12, M13, M21, M22, M23, M31, M32) + HashCode.Combine(M33);
Run Code Online (Sandbox Code Playgroud)
看看来源,我不能完全争论这是否可能有我不知道的影响。