3
การตั้งค่าวัตถุเป็น null vs Dispose ()
ฉันรู้สึกทึ่งกับวิธีการทำงานของ CLR และ GC (ฉันกำลังขยายความรู้ในเรื่องนี้โดยการอ่าน CLR ผ่าน C # หนังสือ / โพสต์ของ Jon Skeet และอื่น ๆ ) อย่างไรก็ตามอะไรคือความแตกต่างระหว่างการพูดว่า: MyClass myclass = new MyClass(); myclass = null; หรือโดยการทำให้ MyClass ใช้ IDisposable และ destructor และเรียก Dispose ()? นอกจากนี้หากฉันมีบล็อกรหัสที่มีคำสั่งใช้ (เช่นด้านล่าง) หากฉันก้าวผ่านรหัสและออกจากบล็อกการใช้งานวัตถุนั้นจะถูกกำจัดทิ้งหรือเมื่อมีการรวบรวมขยะเกิดขึ้น? จะเกิดอะไรขึ้นถ้าฉันเรียก Dispose () ในบล็อกการใช้งาน anyay? using (MyDisposableObj mydispobj = new MyDisposableObj()) { …
108
c#
.net
disposable