// The instance field Name pertains to an instance of a particular Panda, // whereas Population pertains to the set of all Pandas: public class Panda : IDisposable{ public string Name; // Instance field public static int Population; // Static field public Panda (string n){ // Constructor Name = n; // Assign the instance field Population = Population + 1; // Increment the static Population field } void IDisposable.Dispose(){ Population = Population - 1; // Decrement the static Population field } } static void Main(){ Panda p1 = new Panda ("Pan Dee"); Console.WriteLine (p1.Name); // Pan Dee Console.WriteLine (Panda.Population); // 1 using(Panda p2 = new Panda ("Pan Dah")){ Console.WriteLine (p2.Name); // Pan Dah Console.WriteLine (Panda.Population); // 2 } Console.WriteLine (Panda.Population); // 1 Panda p3 = new Panda ("Zi Chi"); Console.WriteLine (p3.Name); // Zi Chi Console.WriteLine (Panda.Population); // 2 }
I'm working through the examples in C# 4.0 in a Nutshell, Fourth Edition and I got to thinking about how to erase an instance of a class... using seemed to be the way to go so I implemented the IDisposable Interface and now I've got disposable Pandas!
No comments:
Post a Comment