C#:相同的对象必须具有相同的 HashCode?

2024-03-03

假设我有两个名为K and M

if(K.Equals(M))
{

}

如果这是真的的话K and M always有相同的HashCode http://msdn.microsoft.com/en-us/library/system.object.gethashcode%28v=vs.71%29.aspx ?

或者这取决于编程语言?


合同为GetHashCode()需要它,但由于任何人都可以自己实现,因此永远无法保证。

许多类(尤其是哈希表)需要它才能正确运行。

如果您正在实现一个类,则应始终确保两个相等的对象具有相同的哈希码。

如果您正在实现一个实用程序方法/类,您可以假设两个相等的对象具有相同的哈希码(如果不是,则这是另一个类,而不是您的类,这是有问题的)。

如果您正在实施一些涉及安全的事情,您cannot假设它。

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

C#:相同的对象必须具有相同的 HashCode? 的相关文章

  • 如何将 DataTable/DataSet 转换为 ObjectDataSource

    我有一个与 ObjectDataSource 绑定的 GridView 我有一个返回数据表的方法 如何将 DataTable 提供给 ObjectDataSource 以便在代码中更新 GridView Example protected
  • 如何在编译时检查该类是否是抽象的?

    我所说的抽象类是指至少具有一个纯虚方法的类 如果检查显示该类是 我希望编译失败not抽象的 有可能吗 Use std is abstract http en cppreference com w cpp types is abstract
  • .NET 中字段初始化器有什么用(除了可读性之外)?

    我只是想了解字段初始值设定项 我遇到了错误 字段初始值设定项无法使用非静态字段 方法或属性 在寻找这个答案时我遇到了THIS https stackoverflow com questions 27725571 why c sharp wo
  • 如何使用 C 将带有 2 个变量的 IF 语句转换为 switch 函数?

    我有一个 IF 语句 我想将其转换为 Switch 语句 但它有 2 个变量 在C上可以实现吗 这是一个石头 剪刀 布的游戏 R代表石头 P代表布 S代表剪刀 char play1 play2 printf nPlayer 1 Enter
  • 删除行时 QModelIndex 变得无效

    我正在子类化QAbstractItemModel显示项目QTreeView 并且在这个子类中 projectModel 我有一个功能可以删除树视图中当前选定的索引 Component是用于表示模型所有成员的类 void projectMod
  • 为什么零长度 stackalloc 会让 C# 编译器乐意允许条件 stackalloc?

    下面的 修复 让我很困惑 这里的场景是根据大小有条件地决定是否使用堆栈还是租用缓冲区 然而 这是一个相当小众但有时必要的优化 使用 明显 实现 数字 3 推迟明确的分配 直到我们真正想要分配它 编译器抱怨 CS8353 类型为 Span 的
  • Visual Studio const_iterator 赋值错误

    默认构造的赋值vector
  • 如何在 Linux 中检测通过 GUI 登录的用户

    我想在我的程序中捕获通过 GUI 登录的用户名 我的程序作为守护进程从 root 登录运行 如果非 root 用户通过 GUI 登录 我的程序应该会收到通知 我正在粘贴我当前的程序 该程序调用一个 perl 脚本 利用系统调用来检查当前登录
  • 如何在Unity中集成xAPI / TinCan

    我是 xAPI TinCan API 的新手 所以我的问题可能有点笼统 但到目前为止我还没有找到任何可以帮助我的东西 我认为可以将 xAPI 集成到 Unity 项目 游戏或模拟 中 但我到底该怎么做呢 我可以阅读有关 xAPI 和 Uni
  • 如何在asp.net core中以强类型方式获取资源字符串?

    在下面的程序中 为了获取资源字符串 我使用 localizer About Title 其中 About Title 是一个魔术字符串 如何避免使用这样的字符串 有没有强类型的方法 using Microsoft AspNetCore Mv
  • 具有 C++ 客户端和 C# 后端的协议缓冲区?

    如何通过 HTTP 或等效的 Web 服务将 C 后端与 C 前端连接起来 这里分为三个部分 服务器 听起来像 C 客户端 听起来像 C 和传输 将它们分开 并从最重要的开始 传输 这里的重大决定是您希望数据采用什么形状 您提到了协议缓冲区
  • C++:ostream 和 ostringstream 有什么区别?

    ostream 和 ostringstream 有什么区别 你什么时候会使用其中一种而不是另一种 简单地说 ostringstream提供了一个streambuf ostream要求用户提供一份 要理解其中的含义 有必要了解一点 流是如何工
  • c# Abstract Generic Class继承自Abstract Generic Class

    我正在尝试创建一个抽象泛型类 它继承自另一个抽象泛型类 这是我到目前为止所拥有的 public abstract class BaseClass public long Id get private set public BaseClass
  • 来自指针的 Typedef const 引用[重复]

    这个问题在这里已经有答案了 可能的重复 为什么允许将指针强制转换为引用 https stackoverflow com questions 5924248 why is it allowed to cast a pointer to a r
  • 当代码依赖于两个对象的子类型时,是否有设计模式可以处理

    我会尽力尽可能明确 以防有比回答我的问题更好的解决方案 我正在使用 C 工作 我有一个报告模板 可以包含任意数量的打开的 功能 功能可能是信息表 饼图 条形图 列表等 我将报告生成为文本文件或 PDF 将来可能有其他选项 到目前为止我有一个
  • gfortran 未定义的引用

    我正在尝试编译一个依赖很多东西的程序 我使用并修改了提供的 makefile 来代表我的计算机设置 但在编译的最后一步中我不断收到许多未定义的引用 导致问题的命令行是 gfortran o cosmomc ParamNames o Matr
  • .NET 参考源代码中的四个破折号组是什么?

    我正在浏览源码PluralizationService http referencesource microsoft com System Data Entity Design System Data Entity Design Plura
  • 在 g++ 中链接文件

    最近我尝试用g 在Ubuntu上 编译一个程序 通常我使用 Dev C 在 Windows 上 只要我创建一个项目并将所有必要的文件放入其中 它就可以正常工作 编译程序时出现的错误是 filename cpp undefined refer
  • 使用BindingSource很慢?

    我有一个 C Windows 窗体项目 其中的窗体包含 2 个列表框和一个按钮 在 FormLoad 上 左侧列表框填充了一个列表 约 1800 个项目 其中包含有关证券的信息 ID 和名称 当用户单击按钮时 所有证券都会从左侧列表框移至右
  • 为什么 Asp.Net Core 2.1 WebApi 返回 500.19 错误?

    我有一个小型 webapi 服务 它可以在 Visual Studio 下工作 但不能在 IIS 下工作 我做了下一步 新应用程序已添加到 IIS 控制台中的默认网站 应用程序通过文件系统从 VS 发布到应用程序文件夹中 选择了依赖框架和可

随机推荐