Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3856096
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 19, 20262026-05-19T17:52:38+00:00 2026-05-19T17:52:38+00:00

From my understanding an interfaced resource is freed once the reference count on the

  • 0

From my understanding an interfaced resource is freed once the reference count on the interface gets to 0.

Consider the following private field:

private IMyInterface _field = new DisposableObject()

Would I need to still explicitly free this field up in the class e.g. make the class implemented IDisposable and free it up on Dispose? Or would it be freed up automatically because I am using an interface?

I had a similar situation in Delphi and it was causing a memory leak which confused me a little as I always thought interfaced objects did not need to be freed (as they are reference counted). To fix the memory leak, I had to store the concrete type and free it up on destroy.

I guess what I am really getting at is why do I need to free it up if I am using an interface?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-19T17:52:39+00:00Added an answer on May 19, 2026 at 5:52 pm

    .NET does not use reference counting to determine when resources are garbage collected. Objects will be collected when there are no live references to an object anywhere in the program. This is done by an object-graph traversal rather than reference counting, so that circular references do not leak resources.

    If a class with unmanaged resources is coded correctly, then the call to Dispose will be optional. The resources will be cleaned up in the finalizer when the garbage collection occurs regardless.

    Dispose does not affect the lifetime of an object. It will be garbage collected at some time after there are no live references to the object remaining.

    The lifetime of an object is also not affected by whether the variable that references it is of an interface or object type. Setting the variable to null will remove the live reference and—if there are no other references to the object—allow the object to be collected.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

From my understanding if you implement an interface in java, the methods specified in
i'm developing an interface to retrieve a file from sharepoint. i have the following
From my understanding of the manual for DECIMAL in the mysql docs, it states
From my understanding, the soft keyboard is actually a dialog window that underlies all
From my understanding, each of these methods: get() and put() are atomic. But, when
From my understanding of the docs this general approach should work: begin try1 rescue
From my understanding by reading several articles I assumed Process Address Space(PAS) and Virtual
MariaDB 5.3 introduced dynamic columns. From my understanding the next version of mysql should
From what little understanding of Cassandra I have, it seems that data locality is
I have some not understanding actions from gnu clisp Suppose, I have some code

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.