重写GetHashCode方法的意义
2021年4月27日
评论已被关闭
今天看代码的时候遇到一个比较有意思的地方重写了GetHashCode方法,总结一下需要重写GetHashCode的一些情形。
在开发中经常使用协程做并发和异步,协程的实现分为有栈协程(stackful)和无栈协程(stackless)两种,其中C#的yield return实现是无栈协程。
Thread, stackful coroutine, stackless coroutine, generator , statemachine.
C#、Java、Lua等等通过GC回收堆内存的方式好处在于不用手动释放内存,避免内存泄漏。但坏处就是如果有非虚拟机托管的内存\资源,是没办法释放\关闭的。在C++中,可以在析构函数里释放申请的资源。在C#、Java、lua这类由GC托管的语言也有相应的方法释放资源。
委托delegate是C#事件驱动编程的核心,对应C++的函数指针,function和bind。本文全方面的总结delegate,以及内置的几个委托Action, Func, Predicate等。