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

i'm developing an interface to retrieve a file from sharepoint. i have the following
From my understanding the XMPP protocol is based on an always-on connection where you
From my understanding of the CSS spec, a table above or below a paragraph
From my understanding, Lua is an embeddable scripting language that can execute methods on
I'm using TortoiseHg 0.5 (which includes Mercurial 1.0.2) on Vista64. My understanding from the
My understanding of Hibernate is that as objects are loaded from the DB they
Are there any understanding / maintainability issues that result from code like inVar1 ==
From time to time I see an enum like the following: [Flags] public enum
Here's an excerpt from java.text.CharacterIterator documentation: This interface defines a protocol for bidirectional iteration
I have the understanding that using data access routines directly from presentation code is

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.