我只是浪费了几个小时的调试之后才意识到与.NET相反,在.NET Core中,GetHashCode在您每次运行代码时都返回不同的值。 我完全理解这个理由。依靠哈希码值是一个非常糟糕的想法(如序列化它们)。我甚至记得微软的.NET内部版本(Core之前)会改变每个版本的GetHashCode的行为,以免让人感到不适应。尽管如此,我目前正在调试大量使用GetHashCode的复杂代码。我知道这个bug是我自己做的,并且与GetHashCode无关,但是每次运行它时,它都会在其他地方失败。很烦人。 有没有办法强制GetHashCode行为像.NET中(而我正在调试),而不必编写我自己的散列函数,并必须在我的代码中的任何地方取代它?有没有办法让.NET核心GetHashCode确定性
7
A
回答
0
我发现实用的解决方案,我发现string.GetHashCode跨多个执行返回可预测的值只是切换回经典的.NET(4.6)。由于.NET Core没有关于我的代码的具体内容,我唯一需要做的工作就是创建一个新项目。我在.NET 4.6下调试了我的代码,修复了错误并切换回了Core。
2
相关问题
- 1. 有没有办法让猴子补丁的核心python类?
- 2. 有没有办法“热发布”.NET核心应用程序?
- 3. 有没有办法让ngModel识别属性绑定语法?
- 4. 有没有办法让CSS确定和调整图像宽度?
- 5. 有没有办法确定.NET线程何时终止?
- 6. 有没有办法用Xcode打开(任意)核心转储?
- 7. .NET 2.0的核心没有Microsoft.Extensions
- 8. .NET核心 - 有没有一种方法来实现WinForms?
- 9. 有没有办法将自定义SQL添加(核心数据)提取?
- 10. 有没有办法让一个属性运行时 - 仅在.NET中?
- 11. 有没有办法让元素在GTM
- 12. 有没有办法让这项工作?
- 13. viewflow.io:有没有办法让'子流'?
- 14. 有没有办法让@ModelAttribute动态?
- 15. 有没有办法让相机胶卷
- 16. 有没有办法让Browserify更快?
- 17. 有没有办法让Vis.js Network居中?
- 18. 有没有办法让Calendar Extender限制?
- 19. 有没有办法让@PersistenceContext更灵活?
- 20. 有没有办法让Boost.Assign一个ptr_vector?
- 21. 有没有办法让YQL返回HTML?
- 22. 有没有办法让配置“递归”?
- 23. Silverlight - 有没有办法让'variadic'UriMapping?
- 24. 有没有办法让cffile.oldFileSize返回正确的值?
- 25. PHP动态对象属性有没有办法让它工作?
- 26. 有没有办法让Rails的ActiveRecord属性保密?
- 27. 有没有办法让私人的JavaScript对象属性?
- 28. 有没有办法改变C#中的.NET URL显示属性?
- 29. 有没有办法确定给定AWS dynamodb表的哈希键属性?
- 30. 没有核心数据的NSArrayController绑定
你的意思是'String.GetHashCode()'或'Object.GetHashCode()'?我认为你根本不会影响后者;它总是基于永远不会超过伪确定性的对象引用。前者在编译时由'FEATURE_RANDOMIZED_STRING_HASHING'管理,在运行时由['UseRandomizedStringHashAlgorithm>](https://msdn.microsoft.com/library/jj152924)管理 - 但我不知道.NET Core是否尊重后者,只是默认情况下它是绝对开启的。 –
为了澄清,当我说“编译时”时,我的意思是在编译* runtime *的时候,而不是你自己的应用程序。在你自己的代码中定义'FEATURE_RANDOMIZED_STRING_HASHING'什么都不做。但.NET Core是开源的,如果说到这一点,你可以随时重建它。 –
我的代码是泛型的,实际上它是object.GetHashCode(),但在我的例子中,对象是一个字符串,所以哈希代码基于(不可变的)字符串内容。 –