Недавно возникло обсуждение: допустимо ли использование необязательных аргументов в конструкторах класса. Действительно сначала возникает ощущение, что такое использование может затруднить понимание и изменение кода. Если не поддаваться чувствам, а рассмотреть аргументацию за и против, то выясниться что аргументы “против” сводятся к тому что это непривычно. Непривычно – плохой аргумент, сегодня это не привычно/ново завтра это повсеместная практика. Так что используйте на здоровье, косвенно это подтверждается примерами из MSDN.