我比较迟钝,到现在才知道结构类型放在字典作为键时,效率是不好的,最好重载GetHashCode和Equals,那效率究竟差异有多大呢?我写了一个测试程序。

 

结构类型需要重载GetHashCode和EqualsResourceServiceKey2 key1 = new ResourceServiceKey2(typeof(IRegisterAssemblyService),"OrderSheet"); 
结构类型需要重载GetHashCode和Equals           ResourceServiceKey2 key2 
= new ResourceServiceKey2(typeof(IRegisterAssemblyService), "OrderSheet"); 
结构类型需要重载GetHashCode和Equals           DateTime begin 
= DateTime.Now;
结构类型需要重载GetHashCode和Equals           DateTime endTime;           
bool r;
 endTime; 


ResourceServiceKey是重载了这两个方法的,共花了0.5秒左右,而ResourceServiceKey2没有重载,共花了22秒,差异还是挺大的。反编译ValueType(结构的基础类型),看了代码,才发现,这样不慢才怪呢。

结构类型需要重载GetHashCode和Equalspublic override bool Equals(object obj) 

 

相关文章:

  • 2021-08-26
  • 2021-09-01
  • 2021-12-05
  • 2021-08-13
  • 2021-12-29
  • 2021-05-24
  • 2021-10-08
猜你喜欢
  • 2022-12-23
  • 2022-02-04
  • 2022-12-23
  • 2022-12-23
  • 2021-10-01
  • 2021-10-28
  • 2021-11-12
相关资源
相似解决方案