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