为什么“397”用于 ReSharper GetHashCode 覆盖?

2023-12-24

和你们中的许多人一样,我使用 ReSharper 来加快开发过程。当您使用它来覆盖类的相等成员时,它生成的代码生成为GetHashCode()好像:

    public override int GetHashCode()
    {
        unchecked
        {
            int result = (Key != null ? Key.GetHashCode() : 0);
            result = (result * 397) ^ (EditableProperty != null ? EditableProperty.GetHashCode() : 0);
            result = (result * 397) ^ ObjectId;
            return result;
        }
    }

当然我也有一些自己的成员在那里,但我想知道的是为什么是397?

  • 编辑:所以我的问题最好措辞为,除了素数之外,397素数还有什么“特别”之处吗?

可能是因为 397 是一个足够大小的质数,足以导致结果变量溢出并在某种程度上混合散列的位,从而提供更好的散列码分布。 397 与其他同量级素数相比并没有什么特别之处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么“397”用于 ReSharper GetHashCode 覆盖? 的相关文章

  • ReSharper intellisense 不显示文档

    知道为什么我没有收到任何与我的 ReSharper IntelliSense 一起使用的文档吗 如果我转至 ReSharper 选项并启用 Visual Studio IntelliSense 则在浏览 IntelliSense 弹出窗口中
  • Perl DBI fetchall_hashref

    考虑下表 mysql gt select from vCountryStatus CountryName CountryISO Code Status Symbol CurrencyName Brazil BR 55 LIVE BRL Br
  • 获取文件哈希性能/优化

    我正在尝试尽快获取文件的哈希值 我有一个程序 可以对大量数据 100GB 进行哈希处理 这些数据由随机文件大小 每个文件从几KB到5GB 组成 跨少量文件到数十万个文件 该程序必须支持所有 Java 支持的算法 MD2 MD5 SHA 1
  • 具有特定长度的字符串的哈希值

    有没有一种方法可以生成字符串的哈希值 以便哈希值本身具有特定的长度 我有一个生成 41 字节哈希值 SHA 1 的函数 但我需要它最大为 33 字节 由于某些硬件限制 如果我将 41 字节哈希截断为 33 我可能 当然 失去了唯一性 或者实
  • 使用未定义常量 CRYPT_SHA512

    我使用一个 php 脚本 该脚本使用 php 的 crypt 并使用 SHA512 对密码进行哈希处理 但是当我尝试检查 SHA512 是否已设置时 出现上述错误 当然我知道为什么我会收到这个错误 php 缺少一些依赖项 我只是不知道这种依
  • 如何从 PHP 字符串中获取 64 位整数哈希值?

    我需要 64 位字符串整数哈希值来实现哈希映射之类的功能 在我看来 没有可以返回 64 位整数的原生 PHP 哈希功能 我认为可以获取 sha1 哈希值的第一部分并将其转换为整数 然而 这不会带来最好的性能 而且转换似乎很棘手 当然 如果不
  • 如何自动创建 WPF Viewmodel 属性

    我在 WPF 项目中使用 Visual Studio 17 和 Resharper 该项目向用户显示大量信息 因此我有很多如下所示的属性 private double foo public double Foo get return foo
  • 如何更改 ReSharper 中给定命令的快捷键?

    I need to change shortcut for finding member ALT in ReSharper because of my native keyboard which brings me problem to p
  • 在 Ruby 中,哈希中标识符后面的冒号的含义是什么?

    我正在了解 Factory Girl 我看到了这段代码 factory post do association author factory user last name Writely end why do factory and las
  • 安装了 Resharper,现在立即窗口中没有自动代码提示

    我已经习惯使用 ReSharper 因此无法卸载它 然而 我想尝试修复的一件小事是立即窗口 例如 当我键入 myObject 时 我会收到自动智能提示 自从我安装了 ReSharper 以来 这似乎不再起作用 并且仅在调试时在即时窗口中起作
  • Qt 计算和比较密码哈希

    目前正在 Qt 中为测验程序构建面向 Web 的身份验证服务 据我了解 在数据库中存储用户密码时 必须对其进行隐藏 以防落入坏人之手 流行的方法似乎是添加的过程Salt https en wikipedia org wiki Salt cr
  • 为什么 Java 中的 hashCode() 可以对不同对象返回相同的值?

    引用我正在读的书中的一段话首先Java http www amazon co uk Head First Java Kathy Sierra dp 0596009208 关键是 哈希码可以相同 但不一定保证对象相等 因为使用的 哈希算法 h
  • NGINX hashbang 重写

    我想知道 hashbang url 的位置或重写 nginx 指令会是什么样子 基本上像前端控制器一样通过 hashbang 路由所有非 hashbanged url 所以 http example com about staff 将路由至
  • 如何使redis中的“HSET”子键“过期”?

    我需要使 Redis 哈希中所有超过 1 个月的密钥过期 这不可能 https github com antirez redis issues 167 issuecomment 2559040 为了保持 Redis 简单 https git
  • 非加密用途的最快哈希值?

    我本质上是在准备要放入数据库的短语 它们可能格式错误 所以我想存储它们的简短散列 我将简单地比较它们是否存在 所以散列是理想的 我假设 MD5 在处理 100 000 个请求时相当慢 所以我想知道散列短语的最佳方法是什么 也许推出我自己的散
  • NodeJS 在目录中递归地哈希文件

    我能够实现目录中的递归文件遍历 即探索目录中的所有子目录和文件 为此我使用了answer https stackoverflow com questions 5827612 node js fs readdir recursive dire
  • 我的单元测试 ReSharper 装订线图标未显示

    我已经安装了 ReSharper 4 1 和 Gallio 3 0 5 但没有获得单元测试的装订线图标 测试似乎在测试资源管理器中运行良好 但代码中的测试旁边没有图标 可能是什么原因造成的 我之前安装了 MbUnit 2 4 ReSharp
  • 数学组合的完美最小哈希

    首先定义两个整数N and K where N gt K 两者都在编译时已知 例如 N 8 and K 3 接下来 定义一组整数 0 N or 1 N 如果这使答案更简单 并调用它S 例如 0 1 2 3 4 5 6 7 的子集数量S wi
  • PHP - hash_pbkdf2 函数

    我正在尝试使用此 php 函数执行一个函数来哈希密码 http be php net manual en function hash pbkdf2 php http be php net manual en function hash pb
  • 在 Perl 中使用数据引用的正确方法

    我有一组想要处理的数据 为了简化我的代码 最好通过指向原始数据的引用数组来访问我的数据的某些子集 比解释更好的是 我写下了这个例子 它还没有工作 最后 我想更新原始数据 而不必更新所有子集 用 Perl 可以做这样的事情吗 usr bin

随机推荐