Method overloading or optional parameters? - C#