<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FDevelopment_Class%2FGarbage_Collection</id>
		<title>Csharp/C Sharp/Development Class/Garbage Collection - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FDevelopment_Class%2FGarbage_Collection"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Garbage_Collection&amp;action=history"/>
		<updated>2026-04-29T21:31:40Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Garbage_Collection&amp;diff=1133&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Garbage_Collection&amp;diff=1133&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Garbage_Collection&amp;diff=1134&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Garbage_Collection&amp;diff=1134&amp;oldid=prev"/>
				<updated>2010-05-26T11:43:08Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Check the Generation for an object array==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class Car {&lt;br /&gt;
    private int currSp;&lt;br /&gt;
    private string petName;&lt;br /&gt;
    public Car() { }&lt;br /&gt;
    public Car(string name, int speed) {&lt;br /&gt;
        petName = name;&lt;br /&gt;
        currSp = speed;&lt;br /&gt;
    }&lt;br /&gt;
    public override string ToString() {&lt;br /&gt;
        return string.Format(&amp;quot;{0} is going {1} MPH&amp;quot;,&lt;br /&gt;
            petName, currSp);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        Car refToMyCar = new Car(&amp;quot;Zippy&amp;quot;, 100);&lt;br /&gt;
        Console.WriteLine(refToMyCar.ToString());&lt;br /&gt;
        Console.WriteLine(GC.GetGeneration(refToMyCar));&lt;br /&gt;
        object[] tonsOfObjects = new object[50000];&lt;br /&gt;
        for (int i = 0; i &amp;lt; 50000; i++)&lt;br /&gt;
            tonsOfObjects[i] = new object();&lt;br /&gt;
        GC.Collect(0);&lt;br /&gt;
        GC.WaitForPendingFinalizers();&lt;br /&gt;
        Console.WriteLine(GC.GetGeneration(refToMyCar));&lt;br /&gt;
    }&lt;br /&gt;
    public static void MakeACar() {&lt;br /&gt;
        Car myCar = new Car();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Demonstrates forced garbage collection==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
C# Programming Tips &amp;amp; Techniques&lt;br /&gt;
by Charles Wright, Kris Jamsa&lt;br /&gt;
Publisher: Osborne/McGraw-Hill (December 28, 2001)&lt;br /&gt;
ISBN: 0072193794&lt;br /&gt;
*/&lt;br /&gt;
//&lt;br /&gt;
// gc.cs -- Demonstrates forced garbage collection&lt;br /&gt;
//&lt;br /&gt;
//          Compile this program with the following command line:&lt;br /&gt;
//              C:&amp;gt;csc gc.cs&lt;br /&gt;
//&lt;br /&gt;
namespace nsGarbage&lt;br /&gt;
{&lt;br /&gt;
    using System;&lt;br /&gt;
    using System.Threading;&lt;br /&gt;
    &lt;br /&gt;
    public class GCDemo&lt;br /&gt;
    {&lt;br /&gt;
        static public void Main ()&lt;br /&gt;
        {&lt;br /&gt;
            long Mem = GC.GetTotalMemory (false);&lt;br /&gt;
            Console.WriteLine (&amp;quot;Beginning allocated memory is &amp;quot; + Mem);&lt;br /&gt;
            for (int x = 0; x &amp;lt; 10000; ++x)&lt;br /&gt;
            {&lt;br /&gt;
                clsClass howdy = new clsClass();&lt;br /&gt;
            }&lt;br /&gt;
            Mem = GC.GetTotalMemory (false);&lt;br /&gt;
            Console.WriteLine (&amp;quot;Allocated memory before garbage collection is &amp;quot; + Mem);&lt;br /&gt;
            GC.Collect ();&lt;br /&gt;
            Mem = GC.GetTotalMemory (true);&lt;br /&gt;
            Console.WriteLine (&amp;quot;Allocated memory after garbage collection is &amp;quot; + Mem);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    class clsClass&lt;br /&gt;
    {&lt;br /&gt;
        public clsClass () { }&lt;br /&gt;
        public int x = 42;&lt;br /&gt;
        public float f = 2E10f;&lt;br /&gt;
        public double d = 3.14159;&lt;br /&gt;
        public string str = &amp;quot;This here&amp;quot;s a string&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==demonstrates forced garbage collection 1==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Mastering Visual C# .NET&lt;br /&gt;
by Jason Price, Mike Gunderloy&lt;br /&gt;
Publisher: Sybex;&lt;br /&gt;
ISBN: 0782129110&lt;br /&gt;
*/&lt;br /&gt;
/*&lt;br /&gt;
  Example21_14.cs demonstrates forced garbage collection&lt;br /&gt;
*/&lt;br /&gt;
using System;&lt;br /&gt;
class Junk&lt;br /&gt;
{&lt;br /&gt;
  public Junk()&lt;br /&gt;
  {&lt;br /&gt;
    Console.WriteLine(&amp;quot;Created Junk&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  ~Junk()&lt;br /&gt;
  {&lt;br /&gt;
    Console.WriteLine(&amp;quot;Destroyed Junk&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class Example21_14 &lt;br /&gt;
{&lt;br /&gt;
  public static void Main() &lt;br /&gt;
  {&lt;br /&gt;
    Console.WriteLine(&amp;quot;Starting Main&amp;quot;);&lt;br /&gt;
    // create a Junk object&lt;br /&gt;
    Junk j = new Junk();&lt;br /&gt;
    &lt;br /&gt;
    // and destroy it&lt;br /&gt;
    j = null;&lt;br /&gt;
    // force a garbage collection&lt;br /&gt;
    GC.Collect();&lt;br /&gt;
    Console.WriteLine(&amp;quot;Exiting Main&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Estimated bytes on heap==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        Console.WriteLine(&amp;quot;Estimated bytes on heap: {0}&amp;quot;, GC.GetTotalMemory(false));&lt;br /&gt;
        Console.WriteLine(&amp;quot;This OS has {0} object generations.\n&amp;quot;, (GC.MaxGeneration + 1));&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Finalizable Disposable Class with using==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
&lt;br /&gt;
public class MyResourceWrapper : IDisposable {&lt;br /&gt;
    public void Dispose() {&lt;br /&gt;
        Console.WriteLine(&amp;quot;In Dispose() method!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        MyResourceWrapper rw = new MyResourceWrapper();&lt;br /&gt;
        if (rw is IDisposable)&lt;br /&gt;
            rw.Dispose();&lt;br /&gt;
        using (MyResourceWrapper rw2 = new MyResourceWrapper()) {&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get Total Memory==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
&lt;br /&gt;
public class MyClass {&lt;br /&gt;
    public void Dispose() {&lt;br /&gt;
        Console.WriteLine(&amp;quot;Dispose()&amp;quot;);&lt;br /&gt;
        GC.SuppressFinalize(this);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class ReRegFinalApp {&lt;br /&gt;
    public static void DoSomething() {&lt;br /&gt;
        MyClass t = new MyClass();&lt;br /&gt;
        Console.WriteLine(t);&lt;br /&gt;
        t.Dispose();&lt;br /&gt;
        GC.ReRegisterForFinalize(t);&lt;br /&gt;
    }&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        long n = GC.GetTotalMemory(true);&lt;br /&gt;
        Console.WriteLine(&amp;quot;start of Main: {0} bytes allocated&amp;quot;, n);&lt;br /&gt;
        DoSomething();&lt;br /&gt;
        n = GC.GetTotalMemory(true);&lt;br /&gt;
        Console.WriteLine(&amp;quot;end of Main: {0} bytes allocated&amp;quot;, n);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IDisposable interface==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
namespace Client.Chapter_5___Building_Your_Own_Classes&lt;br /&gt;
{&lt;br /&gt;
      public class DTOR: IDisposable&lt;br /&gt;
      {&lt;br /&gt;
           public static int[] MyIntArray;&lt;br /&gt;
           private static int ObjectCount = 0;&lt;br /&gt;
           private bool Disposed = false;&lt;br /&gt;
           static void Main(string[] args)&lt;br /&gt;
           {&lt;br /&gt;
                 MyIntArray = new int[10];&lt;br /&gt;
                  ObjectCount++;&lt;br /&gt;
             }&lt;br /&gt;
            //Used to clean up and free unmanaged resources&lt;br /&gt;
            //Never mark this class as virtual as you do not want derived &lt;br /&gt;
            //classes to be able to override it.&lt;br /&gt;
            public void Dispose()&lt;br /&gt;
            {&lt;br /&gt;
                  //if this class is derived then call the base&lt;br /&gt;
                  //class dispose.&lt;br /&gt;
                  //base.Dispose();&lt;br /&gt;
                  //Call the overloaded version of dispose&lt;br /&gt;
                  Dispose(true);&lt;br /&gt;
                  //Tell the CLR not to run the finalizer this way&lt;br /&gt;
                  //you do not free unmanaged resources twice&lt;br /&gt;
                  GC.SuppressFinalize(this);&lt;br /&gt;
                 &lt;br /&gt;
            }&lt;br /&gt;
            //If user calls dispose both managed and unmanaged resources&lt;br /&gt;
            //are freed&lt;br /&gt;
            //If the finalizer is called then only unmanaged resources are freed&lt;br /&gt;
            private void Dispose(bool disposing)&lt;br /&gt;
            {&lt;br /&gt;
                  if(!this.Disposed)&lt;br /&gt;
                  {&lt;br /&gt;
                         if(disposing)&lt;br /&gt;
                         {&lt;br /&gt;
                              //free any managed resources&lt;br /&gt;
                         }&lt;br /&gt;
  &lt;br /&gt;
                         //free unmanaged resources&lt;br /&gt;
                  }&lt;br /&gt;
                  &lt;br /&gt;
                  Disposed = true;&lt;br /&gt;
            }&lt;br /&gt;
            //This finalizer method is called by the GC,&lt;br /&gt;
            //not the user. The net result of having this is that&lt;br /&gt;
            //the object will always survive the first GC cycle and&lt;br /&gt;
            //will be collected the next time GC1 is collected.&lt;br /&gt;
            ~DTOR()&lt;br /&gt;
            {&lt;br /&gt;
                  Dispose(false);&lt;br /&gt;
            }&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==If object array is still alive==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class Car {&lt;br /&gt;
    private int currSp;&lt;br /&gt;
    private string petName;&lt;br /&gt;
    public Car() { }&lt;br /&gt;
    public Car(string name, int speed) {&lt;br /&gt;
        petName = name;&lt;br /&gt;
        currSp = speed;&lt;br /&gt;
    }&lt;br /&gt;
    public override string ToString() {&lt;br /&gt;
        return string.Format(&amp;quot;{0} is going {1} MPH&amp;quot;,&lt;br /&gt;
            petName, currSp);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        Car refToMyCar = new Car(&amp;quot;Zippy&amp;quot;, 100);&lt;br /&gt;
        Console.WriteLine(refToMyCar.ToString());&lt;br /&gt;
        Console.WriteLine(&amp;quot;\nGeneration of refToMyCar is: {0}&amp;quot;, GC.GetGeneration(refToMyCar));&lt;br /&gt;
        object[] tonsOfObjects = new object[50000];&lt;br /&gt;
        for (int i = 0; i &amp;lt; 50000; i++)&lt;br /&gt;
            tonsOfObjects[i] = new object();&lt;br /&gt;
        GC.Collect(0);&lt;br /&gt;
        GC.WaitForPendingFinalizers();&lt;br /&gt;
        Console.WriteLine(&amp;quot;Generation of refToMyCar is: {0}&amp;quot;,GC.GetGeneration(refToMyCar));&lt;br /&gt;
        if (tonsOfObjects[9000] != null) {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Generation of tonsOfObjects[9000] is: {0}&amp;quot;,GC.GetGeneration(tonsOfObjects[9000]));&lt;br /&gt;
        } else&lt;br /&gt;
            Console.WriteLine(&amp;quot;tonsOfObjects[9000] is no longer alive.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    public static void MakeACar() {&lt;br /&gt;
        Car myCar = new Car();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MaxGeneration is zero based.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class Car {&lt;br /&gt;
    private int currSp;&lt;br /&gt;
    private string petName;&lt;br /&gt;
    public Car() { }&lt;br /&gt;
    public Car(string name, int speed) {&lt;br /&gt;
        petName = name;&lt;br /&gt;
        currSp = speed;&lt;br /&gt;
    }&lt;br /&gt;
    public override string ToString() {&lt;br /&gt;
        return string.Format(&amp;quot;{0} is going {1} MPH&amp;quot;,&lt;br /&gt;
            petName, currSp);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        Console.WriteLine(&amp;quot;Estimated bytes on heap: {0}&amp;quot;, GC.GetTotalMemory(false));&lt;br /&gt;
        Console.WriteLine(&amp;quot;This OS has {0} object generations.\n&amp;quot;, (GC.MaxGeneration + 1));&lt;br /&gt;
        Car refToMyCar = new Car(&amp;quot;Zippy&amp;quot;, 100);&lt;br /&gt;
        Console.WriteLine(refToMyCar.ToString());&lt;br /&gt;
        Console.WriteLine(&amp;quot;\nGeneration of refToMyCar is: {0}&amp;quot;, GC.GetGeneration(refToMyCar));&lt;br /&gt;
    }&lt;br /&gt;
    public static void MakeACar() {&lt;br /&gt;
        Car myCar = new Car();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Print out how many times a generation has been swept.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class Car {&lt;br /&gt;
    private int currSp;&lt;br /&gt;
    private string petName;&lt;br /&gt;
    public Car() { }&lt;br /&gt;
    public Car(string name, int speed) {&lt;br /&gt;
        petName = name;&lt;br /&gt;
        currSp = speed;&lt;br /&gt;
    }&lt;br /&gt;
    public override string ToString() {&lt;br /&gt;
        return string.Format(&amp;quot;{0} is going {1} MPH&amp;quot;,petName, currSp);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        Car refToMyCar = new Car(&amp;quot;A&amp;quot;, 100);&lt;br /&gt;
        Console.WriteLine(refToMyCar.ToString());&lt;br /&gt;
        Console.WriteLine(GC.GetGeneration(refToMyCar));&lt;br /&gt;
        object[] tonsOfObjects = new object[50000];&lt;br /&gt;
        for (int i = 0; i &amp;lt; 50000; i++)&lt;br /&gt;
            tonsOfObjects[i] = new object();&lt;br /&gt;
        GC.Collect(0);&lt;br /&gt;
        GC.WaitForPendingFinalizers();&lt;br /&gt;
        Console.WriteLine(&amp;quot;Generation of refToMyCar is: {0}&amp;quot;,GC.GetGeneration(refToMyCar));&lt;br /&gt;
        if (tonsOfObjects[9000] != null) {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Generation of tonsOfObjects[9000] is: {0}&amp;quot;,GC.GetGeneration(tonsOfObjects[9000]));&lt;br /&gt;
        } else&lt;br /&gt;
            Console.WriteLine(&amp;quot;tonsOfObjects[9000] is no longer alive.&amp;quot;);&lt;br /&gt;
        Console.WriteLine(&amp;quot;\nGen 0 has been swept {0} times&amp;quot;, GC.CollectionCount(0));&lt;br /&gt;
        Console.WriteLine(&amp;quot;Gen 1 has been swept {0} times&amp;quot;, GC.CollectionCount(1));&lt;br /&gt;
        Console.WriteLine(&amp;quot;Gen 2 has been swept {0} times&amp;quot;, GC.CollectionCount(2));&lt;br /&gt;
    }&lt;br /&gt;
    public static void MakeACar() {&lt;br /&gt;
        Car myCar = new Car();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==System.IDisposable interface and ensure fastest cleaning up as possible after an object==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Mastering Visual C# .NET&lt;br /&gt;
by Jason Price, Mike Gunderloy&lt;br /&gt;
Publisher: Sybex;&lt;br /&gt;
ISBN: 0782129110&lt;br /&gt;
*/&lt;br /&gt;
/*&lt;br /&gt;
  Example8_9.cs illustrates the use of the&lt;br /&gt;
  the System.IDisposable interface and the using statement&lt;br /&gt;
  to ensure fastest cleaning up as possible after an object&lt;br /&gt;
*/&lt;br /&gt;
using System;&lt;br /&gt;
// declare the Car class&lt;br /&gt;
class Car : System.IDisposable&lt;br /&gt;
{&lt;br /&gt;
  // declare a field&lt;br /&gt;
  public string make;&lt;br /&gt;
  // implement the Dispose() method&lt;br /&gt;
  public void Dispose()&lt;br /&gt;
  {&lt;br /&gt;
    Console.WriteLine(&amp;quot;In Dispose()&amp;quot;);&lt;br /&gt;
    // do any cleaning up here&lt;br /&gt;
    // stop the garbage collector from cleaning up twice&lt;br /&gt;
    GC.SuppressFinalize(this);&lt;br /&gt;
  }&lt;br /&gt;
  // override the Finalize() method&lt;br /&gt;
  ~Car()&lt;br /&gt;
  {&lt;br /&gt;
    Console.WriteLine(&amp;quot;In Finalize()&amp;quot;);&lt;br /&gt;
    // call the Dispose() method&lt;br /&gt;
    Dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Example8_9&lt;br /&gt;
{&lt;br /&gt;
  public static void Main()&lt;br /&gt;
  {&lt;br /&gt;
    // create a Car object within the using statement&lt;br /&gt;
    using (Car myCar = new Car())&lt;br /&gt;
    {&lt;br /&gt;
      // the Car object (and object reference) are only&lt;br /&gt;
      // available within this block&lt;br /&gt;
      myCar.make = &amp;quot;Toyota&amp;quot;;&lt;br /&gt;
      System.Console.WriteLine(&amp;quot;myCar.make = &amp;quot; + myCar.make);&lt;br /&gt;
    }&lt;br /&gt;
    System.Console.WriteLine(&amp;quot;At the end of Main()&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>