JetBrains Rider 2026.2 Help

代码检查:使用 'HashCode.Combine' 计算哈希代码

此检查会报告创建临时值元组并在其上调用 GetHashCode() 的哈希代码计算。 当 System.HashCode 可用时, HashCode.Combine(...) 能直接表达相同的意图,并且避免了使用临时元组。 对含有最多 8 个元组组件的 ValueTuple.GetHashCode() 调用会报告此检查。 对于更大的元组,应使用包含所有组件的哈希代码计算方式。

示例

using System; public sealed class Customer(int id, string name) { public override int GetHashCode() { return (id, name).GetHashCode(); } }
using System; public sealed class Customer(int id, string name) { public override int GetHashCode() { return HashCode.Combine(id, name); } }

快速修复

ValueTuple.GetHashCode() 调用替换为 HashCode.Combine(...)。 元组元素名称不会影响哈希代码,也不会包含在替换中。

2026年 7月 17日