摘要: 在 C# 里面,所有的对象都继承 Object 类型,此类型有开放 GetHashCode 用于给开发者重写。此 GetHashCode 方法推荐是在重写 Equals 方法时也同时进行重写,要求两个对象在 Equals 返回相等时,两个对象的 GetHashCode 返回值也相等。反过来则不然,允许有两个不相等的对象的 GetHashCode 是相等的 在重写 Equals 方法时,大部分时候都是自动生成的,如将类里面的所有字段或属性都进行一一比较。那在 GetHashCode 方法里面,所输出的哈希值的计算,是否也需要使用此类型的所有字段或属性共同计算出来?如果在 GetHashCode 里面使用的字段或属性非只读,那么 ReSharper 将会警告你这是不安全的。本文将来告诉大家为什么这是不安全的 阅读全文
posted @ 2021-10-15 08:47 lindexi 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 利用哈希的其中一个思想,相同的对象的哈希值相同,可以用来提升一些大对象集合的进行对象相等判断的性能。大对象的相等判断指的是有某些类型的相等判断需要用到对象的很多属性或字段进行参与判断逻辑才能判断两个对象是否相等,当这些大对象存放在集合里面,此时进行大量的相等判断将会因为需要有大量的属性或字段的判断而降低性能。本文告诉大家如何使用此哈希的思想提升判断的性能 阅读全文
posted @ 2021-10-15 08:46 lindexi 阅读(257) 评论(0) 推荐(1) 编辑
摘要: 本文告诉大家在 dotnet 5 里,如何使用 WinRT 加上 Microsoft.Windows.SDK 的辅助来调用 WindowsRuntime 方法。当前是 2021.10 此时的 Windows App SDK 还没准备好,也因此构建起来等逻辑都有点锅。本文和大家演示如何在 WPF 应用里面用上 UWP 提供的 FolderPicker 类型 阅读全文
posted @ 2021-10-15 08:43 lindexi 阅读(419) 评论(0) 推荐(0) 编辑