Best practice for class constructors? - C#