Проверьте внутри метода, был ли передан какой-то необязательный аргумент
Как проверить, был ли необязательный аргумент передан методу?
public void ExampleMethod(int required, string optionalstr = "default string",
int optionalint = 10)
{
if (optionalint was passed)
return;
}
Другой подход заключается в использовании (Nullable.HasValue
Определения MSDN,Примеры MSDN):
int default_optionalint = 0;
public void ExampleMethod(int required, int? optionalint,
string optionalstr = "default string")
{
int _optionalint = optionalint ?? default_optionalint;
}