jjzjj

getHashCode

全部标签

c# - 如何调用像 base.base.GetHashCode() 这样的二级基类方法

classA{publicoverrideintGetHashCode(){return1;}}classB:A{publicoverrideintGetHashCode(){return((object)this).GetHashCode();}}newB().GetHashCode()这会溢出堆栈。如何从B.GetHashCode()调用Object.GetHashCode()?编辑:B现在继承自A。 最佳答案 (编辑-误读问题)如果想获取原始的object.GetHashCode()版本;你不能-至少不能,除非A通过类似的方式

c# - Int32 的 GetHashCode() 是如何实现的?

我找遍了所有地方,但我找不到任何东西。任何人都可以阐明这一点吗? 最佳答案 根据Reflector:publicoverrideintGetHashCode(){returnthis;}有道理,是吗? 关于c#-Int32的GetHashCode()是如何实现的?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3893782/

c# - ValueType.GetHashCode 的 native 实现如何工作?

我创建了两个TheKey类型的结构体k1={17,1375984}和k2={17,1593144}。显然,第二个字段中的指针是不同的。但是两者都得到相同的哈希码=346948941。期望看到不同的哈希码。请参阅下面的代码。structTheKey{publicintid;publicstringName;publicTheKey(intid,stringname){this.id=id;Name=name;}}staticvoidMain(){//assigntwodifferentstringstoavoidinterningvark1=newTheKey(17,"abc");var

c# - 关于如何正确覆盖 object.GetHashCode() 的一般建议和指南

根据MSDN,哈希函数必须具有以下属性:Iftwoobjectscompareasequal,theGetHashCodemethodforeachobjectmustreturnthesamevalue.However,iftwoobjectsdonotcompareasequal,theGetHashCodemethodsforthetwoobjectdonothavetoreturndifferentvalues.TheGetHashCodemethodforanobjectmustconsistentlyreturnthesamehashcodeaslongasthereisn

c# - 正确实现GetHashCode

这个问题在这里已经有了答案:WhatisthebestalgorithmforoverridingGetHashCode?(22个答案)关闭8年前。我想听听社区关于我应该如何为我的对象实现GetHashCode(或覆盖它)的意见。我知道如果我重写equals方法,我需要这样做。我已经实现了很多次,有时只是调用基本方法。我知道我的对象应该等于对象的另一个实例,如果它包含相同的详细信息(成员)。从类(class)成员那里获取哈希码的最佳方式是什么?

c# - C#字符串的GetHashCode()是如何实现的?

我只是好奇,因为我猜它会对性能产生影响。它考虑完整的字符串吗?如果是,它在长字符串上会很慢。如果它只考虑字符串的一部分,它的性能会很差(例如,如果它只考虑字符串的开头,如果HashSet包含大部分相同的字符串,它的性能会很差。 最佳答案 一定要获得ReferenceSourcesourcecode当你有这样的问题时。它比您从反编译器中看到的要多得多。选择与您首选的.NET目标相匹配的方法,该方法在不同版本之间发生了很大变化。我将在这里重现它的.NET4.5版本,从Source.NET4.5\4.6.0.0\net\clr\src\B
78910