Named and Optional Parameters in C#