How do I reinitialize or reset the properties of a class?

Dylan Bennett picture Dylan Bennett · Apr 2, 2009 · Viewed 46k times · Source

I've created a class with properties that have default values. At some point in the object's lifetime, I'd like to "reset" the object's properties back to what they were when the object was instantiated. For example, let's say this was the class:

public class Truck {
   public string Name = "Super Truck";
   public int Tires = 4;

   public Truck() { }

   public void ResetTruck() {
      // Do something here to "reset" the object
   }
}

Then at some point, after the Name and Tires properties have been changed, the ResetTruck() method could be called and the properties would be reset back to "Super Truck" and 4, respectively.

What's the best way to reset the properties back to their initial hard-coded defaults?

Answer

maxyfc picture maxyfc · Apr 2, 2009

You can have the initialization in a method instead of inlining with the declaration. Then have the constructor and reset method call the initialization method:

public class Truck {
   public string Name;
   public int Tires;

   public Truck() {
      Init();
   }

   public void ResetTruck() {
      Init();
   }

   private void Init() {
      Name = "Super Truck";
      Tires = 4;
   }
}

Another way is not to have a reset method at all. Just create a new instance.