Is there any particular reason/example that why would I ever need overloaded constructors? - C#