Using static properties as class wide data

This is one of those things that is so obvious I wonder why it never occured to me before!  If you declare a member as static the compiler only creates one member instance across all class instances.

class ClassWideStatic
{
  protected static int NoOfInstances;
  public ClassWideStatic()
  {
    //setting NoOfInstances here will set it on ALL instances
    //effectively resetting it, but modifying it is fine
    NoOfInstances += 1;
  }
  static ClassWideStatic()
  {
    //This is a special constructor that is only called when
    //the first instance is created
    NoOfInstances = 1;
  }
} 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.