Consider the following method:
public List<Guid> ReturnEmployeeIds(bool includeManagement = false)
{
}
And the following call:
var ids = ReturnEmployeeIds(true);
For a developer new to the system, it'd be pretty difficult guessing what true did. First thing you'd do is hover over the method name or go to the definition (neither of which are big tasks in the slightest). But, for readability sake, does it make sense to write:
var ids = ReturnEmployeeIds(includeManagement: true);
Is there anywhere that, formally, discusses whether or not to explicitly specify optional parameters when the compiler doesn't need you to?
The following article discusses certain coding conventions: https://msdn.microsoft.com/en-gb/library/ff926074.aspx
Something similar to the article above would be great.