As stated in the title, are optional parameters, such as those used in C# helpful or are they a hindrance to application maintenance and should be avoided as they can make the code harder to understand?
Are optional parameters helpful or a hindrance to application maintenance?
language features;maintenance
Optional parameters have, in my experience, been a good thing.  I have never found them confusing (at least no more confusing than the actual function), since I can always get the default values and know what's being called.One use for them is when I have to add another parameter to a function that's already in general use, or at least in the public interface.  Without them, I'd have to redo the original function to call one that's got another argument, and that can get really old if I wind up adding arguments more than once.