Способ, которым вы «освобождаете память» для любого объекта в .NET, позволяет GC позаботиться об этом.
В случае StringBuilder
, просто установитенапример, Nothing
*, и пусть это будет.
Я думаю, вы можете быть озадачены тем, что означает «избавляться» от объектов в .NET.Цель интерфейса IDisposable
состоит в том, чтобы предоставить механизм, с помощью которого объекты могут освобождать доступ к некоторому общему ресурсу, например, к файловым потокам.Вызов Dispose
- это не то же самое, что освобождение памяти.Поскольку StringBuilder
не имеет доступа к каким-либо общим ресурсам, ему не нужно реализовывать IDisposable
.
Если вы должны принудительно освободить память, вот что GC.Collect
для.Но, честно говоря, я никогда не сталкивался со сценарием, в котором имело бы смысл называть это самостоятельно (в отличие от разрешения GC решать, когда имеет смысл выполнить сбор).
* Я предполагаю, что это переменная уровня класса.Если для начала это была только локальная переменная, нет необходимости устанавливать ее на Nothing
, так как она все равно скоро выйдет из области видимости.