Основное различие заключается в том, что на каждом прогоне GC требуются слабые ссылки (сохраняются ограничения на память), а мягкие ссылки должны храниться в памяти до тех пор, пока GC не потребует памяти (они пытаются увеличить время жизни, но могут сбой в любое время, что полезно, например, для кэшей, особенно для довольно дорогих объектов).
Насколько я знаю, нет четкого утверждения о том, как слабые ссылки влияют на время жизни объекта в .NET. Если они являются истинными слабыми refs, они не должны влиять на него вообще, но это также делает их довольно бесполезными для их, я считаю, главной цели кеширования (я там не прав?). С другой стороны, если они действуют как soft refs, их имя мало вводит в заблуждение.
Лично я полагаю, что они ведут себя как мягкие ссылки, но это просто впечатление и не основано.
Реализация детали применима, конечно. Я спрашиваю о менталитете, связанном с слабыми ссылками .NET, - могут ли они расширять время жизни или ведут себя как истинные слабые ссылки?
(Несмотря на ряд связанных вопросов, я еще не нашел ответа на эту конкретную проблему.)