اول این که ما توی C اصلا کلاس نداریم که قرار باشه destructor داشته باشیم (بخاطر تگ c که گذاشتین میگم)
اگر منظورتون اینکه چوقت باید destruct کلاس رو نوشتن
توی ++C جاهایی destructor نوشته میشه که قرار منابعی که داخل سازنده یا constructor گرفته میشه آزاد بشه مثلا وقتی که از new داخل سازنده استفاده کردین یا یک فایل رو باز کردین destructor باید نوشته بشه و از delete برای آزاد کردن حافظه استفاده بشه و یا فایل بسته بشه .
توی #C بخاطر داشتن garbage collector این کار خودکار انجام میشه و تقریبا هیچ وقت نیاز به نوشتن destructor برای کلاس نیست و مخرب پیش فرض که خودکار ساخته میشه کافیه. مگر این که از کد unmanaged استفاده کنین.
ضمنا destructor بصورت خودکار وقتی که شی کلاس قابل دسترسی نباشه (از scope خارج بشه ) صدا زده میشه و نیاز به کار خاصی برای استفاده بهتر نداره .