Даже если он имеет тот же синтаксис, что и деструктор C ++, это финализатор в C #, который запускается, когда объект подвергается сборке мусора при финализации - это будет влиять на производительность, поскольку GC должен запускать отдельныйпоток, чтобы запустить все финализаторы, чтобы сделать это, ваш экземпляр объекта будет жить дольше, чем необходимый.
Сказав, что вы не должны использовать его, если вам не обязательно - исключение, когда вы должны распоряжаться ресурсами, в этом случае ваш класс должен также реализовать IDisposable
.Это позволит потребителям вашего класса обернуть его в блок using
, который будет вызывать Dispose()
- вот где вы должны разрушать ресурсы.