为什么“int”和“sbyte”GetHashCode 函数生成不同的值?

2024-04-16

我们有以下代码:

int i = 1;
Console.WriteLine(i.GetHashCode());  // outputs => 1

这是有道理的,并且 C# 中除 sbyte 和 Short 之外的所有整型类型都会发生同样的情况。 那是:

sbyte i = 1;
Console.WriteLine(i.GetHashCode());   //  outputs => 257

为什么是这样?


因为该方法的来源(SByte.GetHashCode) is

public override int GetHashCode()
{
    return (int)this ^ ((int)this << 8);
}

至于为什么,微软的人都知道……

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

为什么“int”和“sbyte”GetHashCode 函数生成不同的值? 的相关文章

  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 单元测试 Laravel FormRequest

    我正在尝试对各种自定义进行单元测试FormRequest输入 我找到的解决方案是 建议使用 this gt call 方法并断言response与预期值 答案链接 https stackoverflow com questions 2979
  • 需要帮助使用 Google Apps 脚本查找 Google 表格中的列中的最大值

    我有一张有几千行和两列的工作表 我需要编写一个脚本 该脚本将增加行并将其中一列中的值与同一列中的前 50 个值进行比较 并查看它是否大于前 50 个条目的最大值 我一直在尝试使用 Math max 但找不到正确的语法来使其在动态范围内工作
  • 如何获取文件目录的绝对路径?

    如何获取包含指定文件的目录的绝对路径 current dir is home me dev File file new File target test txt assert absolute file equals home me dev
  • 对三元运算符语句中的“意外 T_ECHO”进行故障排除

    DAO gt get num rows 1 echo is echo are 这似乎没有按预期为我工作 我收到错误 Unexpected T ECHO 我希望它能回应 是 或 是 我已经尝试过 条件周围没有括号 我是否无法以这种方式使用三元
  • 如何更改Vuforia AR相机对焦模式?

    我在用Vuforia 6 2 AR SDK对于在Unity中 但是当我在 Android 手机中测试该应用程序时 相机看起来像blurry 我在 Vuforia 的开发者网站中搜索并找到了一些相机对焦模式 但我无法实现 因为该指南适用于较旧
  • 何时使用 Hibernate 投影?

    我对 Hibernate 有点困惑预测 and criteria 何时使用预测以及何时使用标准 它们并不相互排斥 您可以同时使用两者 预测通常在某些标准的背景下使用 简而言之 Hibernate Projections 用于仅查询您使用 C
  • 无法在 Python 中分配 1.6 GB

    这段代码产生一个MemoryError from pylab import complex128 import numpy x numpy empty 100000000 dtype complex128 100 millions comp
  • 在 os.startfile() 中运行时隐藏控制台?

    我有一个 bat带有参数的文件 我使用运行它os startfile test bat 有没有办法隐藏其控制台 我尝试使用subprocess 效果很好 但是当我关闭父程序时subprocess这是使用编译的py2exe控制台模式也关闭 i
  • TinyMCE有效元素:只允许特定的CSS规则

    小MCE的valid elements属性允许您定义有效 HTML 元素及其属性的白名单 您可以仅允许段落和链接 tinyMCE init valid elements p a href 但是 那style属性有点问题 它对于某些事情 例如
  • SSRS堆叠条形图标签位置

    我正在使用 SQL Server 2012 SSRS 我有一个堆积的条形图 其中包括利息和股息 我想将这些值的总和添加到堆积条形图上方的区域 我尝试过调整标签的各种属性 但我无法将标签位置设置在堆叠条形图中间以外的任何位置 有什么想法如何让
  • 使用 PowerShell 将 Azure 活动日志连接到 Log Analytics 实例

    有没有办法使用 PowerShell 将 Azure 活动日志配置为转发到 Log Analytics 实例 本质上与使用本页概述的门户执行的操作相同 https learn microsoft com en us azure azure
  • 当使用 mkstemp() 创建的文件被删除时?

    我有一个程序调用 mkstemp 用返回的 fd 写入一些内容 然后关闭 fd 我希望保留该文件 直到我自己删除它 使用 rm 命令或其他命令 我的问题是 Linux会在close fd 后删除这个文件吗 Linux在close fd 后会
  • 返回对象的 ECMAScript 6 箭头函数

    当从箭头函数返回一个对象时 似乎有必要使用一组额外的 and a return关键字 因为语法中存在歧义 这意味着我不能写p gt foo bar 但必须写p gt return foo bar 如果箭头函数返回对象以外的任何内容 and
  • jquery 1.9 手风琴高度问题

    我正在使用一个手风琴 其父级高度为 400px 我希望手风琴的高度永远不会大于 400px 但我也希望手风琴的各个元素能够根据其内容的大小进行调整 通过将 heightStyle 设置为 fill 我可以使整个手风琴的高度为 400px 在
  • 模块化编译时数组扩展

    假设我处于这种情况 main c include
  • Rails 3:如何验证 A < B,其中 A 和 B 都是模型属性?

    我想验证一下customer price gt my price 我尝试了以下方法 class Product lt ActiveRecord Base attr accessor my price validates numericali
  • C 结构和 Java 类有什么区别?

    我是 Java 的新手 但对 C 有点熟悉 我想知道 C 结构和 Java 对象以及调用它们的方法之间有什么区别 或者完全等价 例如 自行车结构 class BicycleDemo public static void main Strin
  • 如何在shell中为for循环添加前导零? [复制]

    这个问题在这里已经有答案了 我有一个基本的 for 循环数字 它在每次迭代中将变量 num 加 1 for num 1 num lt 5 num do echo num done 哪个输出 1 2 3 4 5 我试图让它产生输出 在 num
  • C++ 动态返回类型

    我不确定这是否是一件事 说实话我想说不是 但我想知道是否有一种方法可以编写 c 函数 以便它可以选择返回哪种类型的对象 例如 我有一个基类 A 有 3 个子类 Aa Ab Ac 在工厂 F 类我有一个std map
  • 为什么“int”和“sbyte”GetHashCode 函数生成不同的值?

    我们有以下代码 int i 1 Console WriteLine i GetHashCode outputs gt 1 这是有道理的 并且 C 中除 sbyte 和 Short 之外的所有整型类型都会发生同样的情况 那是 sbyte i