我非常喜欢WeakReference。但是我希望有一种方法可以告诉CLR你认为这个引用的弱化程度是多少(比如说从1到5的一个等级)。那会很棒。
Java有SoftReference、WeakReference和第三种类型叫做“phantom reference”。这就是3个层次,GC在决定是否回收对象时采用了不同的行为算法。
我考虑对.NET的WeakReference进行子类化(幸运的是,它不是sealed的,有这个可能),以创建一个基于到期计时器或其他方式的伪SoftReference。