equals相关内容

实施IEquatable< T>在一个可变型

我有一个重新presents外部物理测量设备类。简化的版本是这样的: 公共类设备{ 公共字符串标记{获得;组; } 公众诠释地址{获得;组; } } 标签是用于识别设备的用户定义的值。 地址是由一个适配器与设备进行通信的价值。如果设备的两个实例具有相同地址,那么同样的外部测量设备将被使用。 我想模仿code这种行为(使用方法,如包含和分明 )通过覆盖等于和实施 IE ..
发布时间:2015-11-27 13:00:43 C#/.NET

是什么原因图像和位图类不实现自定义平等/散列code逻辑?

从MSDN文档,似乎既是GetHash code()和equals()还没有被重写的位图。无论是让他们被重写的图像。因此,这两个类都使用对象的版本它们只是比较引用。我是不是太相信,所以我决定火起来反射检查出来。看来MSDN是在此问题上是正确的。 那么,有没有为什么MS家伙不会实行“比较逻辑”,至少在Bitmap类的任何特别的原因吗?我觉得这是对图像还挺接受的,因为它是一个抽象类,但没有这么多的B ..
发布时间:2015-11-27 10:52:54 C#/.NET

可.NET测试阵列等效,而不仅仅是平等的参考?

VAR一个=新的双[] {1,2,3}; 变种B =新双[] {1,2,3}; 的System.Console.WriteLine(等于(A,B)); //返回false 不过,我正在寻找一种方法来比较数组这将比较refernces的内部值来代替。是否有一个内置的方式做到这一点。NET中? 此外,虽然我理解等于比较基准, GetHash code 对于这两个数组返回的值不同同时,我觉 ..
发布时间:2015-11-26 18:12:37 C#/.NET

不一致Equals和GetHash code方法

看完这个问题 为sbyte I = 1; INT J = 1; 的Object.Equals(I,J)//假(1) 的Object.Equals(J,I)//假(2) i.Equals(J)//假(3) j.Equals(ⅰ)//真(4) 我==Ĵ//真(5) Ĵ== I //真(6) i.GetHash code()== j.GetHash code()//假(7) (3)和(4)会切断等 ..
发布时间:2015-11-26 16:52:16 C#/.NET

位阵列平等

我需要的东西比 System.Collections.BitArray 类多一点我的应用程序。具体而言,我需要的比特阵列: 要成为不可改变 要使用值语义实现平等 我创造了我自己的结构,主要是复制 BitArray 实施内部。 (感谢 .net反射!) 我不每天都与位运算处理,所以不具有最高程度的信任我平等的实现。 (它是通过单元测试,我扔去,但我可能会丢失边缘的情况。)我有我提出的解决方案如 ..
发布时间:2015-11-26 16:23:35 C#/.NET

正确实施GetHash code

我想从社会上听到我应该如何去实现GetHash code(或覆盖​​它)我的对象。我明白我必须这样做,如果我重写equals方法。我已经实现了它的次数相当多,有时只是调用基方法。据我所知,我的对象应等于该对象的另一个实例是否包含相同的细节(成员)。什么是从类的成员获得哈希code的最佳方法是什么? 解决方案 比方说,您的类看起来是这样的: 类FROB { 公共字符串富{获得;组; } ..
发布时间:2015-11-26 09:49:27 C#/.NET

equals方法实现助手(C#)

每次我写了一些数据类,我通常会花那么多时间写IEquatable实施。 我写的最后一堂课是这样的: 公共类多边形 { 公共点[]顶点{获得;组; } } 实施IEquatable是exaustive。当然,C#3.0 / LINQ有很大帮助,但是顶点可以转移和/或以相反的顺序,并增添了许多复杂的equals方法。经过多次的单元测试,以及相应的实施,我放弃了,并改变了我的应用程序 ..
发布时间:2015-11-26 00:52:04 C#/.NET

比较对象时等于VS GetHash code

如果我们实现一个自定义的类实例的比较时,同时覆盖等于和 GetHash code 属性? 在以下code我有一个类的集合。类 A 由比较 ID ,类乙 - 由 code 使用系统; 使用System.Collections.Generic; 使用System.Diagnostics程序; 使用System.Linq的; 命名空间ConsoleApplication2 { 类节目 ..
发布时间:2015-11-25 14:12:22 C#/.NET

为什么使用GetHash code()以上的equals()?

的HashSet< T>。新增首 GetHash code 的结果进行比较。如果这些都是平等的,它会调用等于。 现在,我的理解是为了贯彻 GetHash code ,的东西的必须用对象的字段进行。一个简单的例子可以实现在在我的测试比较两个上1.000.000对填充有随机数据对象,性能或多或少等于在两者之间。 GetHash code 被实现为在链接例如,等于只需调用等于上的所有字段。 ..
发布时间:2015-11-24 20:25:22 C#/.NET

是否有一个完整的IEquatable实现参考?

我的很多问题在这里对SO关注IEquatable实施。我发现它是非常困难的正确实施,因为有很多隐藏的错误在幼稚的,我发现关于它的文章是相当不完整的。我想找到或编写一个明确的参考,其中必须包括: 如何正确实施IEquatable 如何重写正确等于 如何覆盖GetHash code正确 如何正确实现ToString方法 如何正确地执行操作== 如何!=正确执行操作 这样一个完整的参考已经存在? ..
发布时间:2015-11-24 15:57:54 C#/.NET

运算符重载在C#中的接口为基础的编程

背景 我使用的基于接口的编程在当前项目,并已重载运营商(特别是等式和不等式运算符)时遇到了问题。 假设 在我使用C#3.0,.NET 3.5和Visual Studio 2008 更新 - !下面的假设是错误的。 要求所有的比较来使用等号,而不是运营商==是不是一个可行的解决方案,通过你的类型库(如集合)时尤其如此。 使用的原因,我很担心,要求等于,而不是运营商==是,我无法找到它 ..
发布时间:2015-11-24 15:55:57 C#/.NET

哪里是InternalEquals(对象objA,对象objB)的实施

在使用反射拆卸净源$ C ​​$ C,我来到了对象类的Equals实现,它指的是 布尔InternalEquals(对象objA,对象objB); 这又是指 内部静态外部布尔InternalEquals(对象objA,对象objB); 我现在的困惑就在哪里可以找到这种 InternalEquals(对象objA,反对objB)功能以及如何使用此功能,并在.NET程序集执行它在该 ..
发布时间:2015-11-24 15:43:29 C#/.NET

重写GetHash $ C $下可变对象?

我读过有关10何时和如何重写 GetHash code 不同的问题,但还是有一些我不完全得到。 GetHash code 的大多数实现都是基于对象的字段的哈希值codeS,但它一直引以为值 GetHash code 不应该在对象的生命周期变化。这是如何工作的,如果它是基于字段是可变的?另外,如果我想字典查找等是基于引用相等不是我重写等于? 我主要覆盖等于为了便于单元测试我的序列化code,我承担 ..
发布时间:2015-11-24 15:18:19 C#/.NET

什么是IEquatable,只是压倒一切的Object.Equals()之间的区别是什么?

我希望我的食品类能够测试时,它等于另一个类。稍后我会用它对付一个列表,我想使用它的List.Contains()方法。我应该实现IEquatable或者只是覆盖的Object.Equals()?从MSDN: 该方法被确定平等 使用默认的相等比较, 由对象的定义 实施 IEquatable.Equals方法对于T (值的列表中的类型)。 因此​​,我的下一个问题是:在.NET框架的哪些功能/ ..
发布时间:2015-11-24 14:26:57 C#/.NET

)之间的``==和.Equals C#差(

我有一个Silverlight应用程序,用于比较两个字符串,因为某些原因,当我使用条件 == 返回假,而 .Equals()返回真正。这里是code: 如果(((ListBoxItem的)lstBaseMenu.SelectedItem).Content.Equals(“能源攻击”)) { //执行code } 如果(((ListBoxItem的)lstBaseMenu.Selected ..
发布时间:2015-11-24 11:02:09 C#/.NET