В ответ на комментарии к вопросу, кажется, вам необходимо уточнить несколько понятий:
В .NET объекты живут где-то в памяти. ссылка напоминает указатель на такой объект / место в памяти. значение - это некоторое целое значение (число, подобное 123).
Например, допустим, у вас есть объект типа MyClass , и вы создали новый экземпляр,Этот объект содержит строку.Эта строка является другим объектом, и ваш экземпляр MyClass содержит ссылку на строковый объект.
Сборщик мусора работает только с объектами .Он отслеживает ссылки на объект, если никто больше не ссылается на объект, сборщик мусора может освободить этот объект.В нашем примере, если сборщик мусора замечает, что никто не держит ссылку на экземпляр MyClass , то он обеспечивает освобождение объекта.Это, в свою очередь, приводит к исчезновению ссылки на строку, и сборщик мусора может также освободить строку (если, конечно, никто не держит ссылку).Значения не нужно обрабатывать каким-либо особым образом, поскольку они являются частью памяти, которая принадлежит объекту (и, следовательно, не может быть освобождена «независимо»).
То же самое верно для Java, BTW.