В чем отличие необязательных параметров от именованных?



Необязательные параметры позволяют опускать аргументы функции, в то время как именованные параметры разрешают передавать аргументы по названию параметра.



public void optionalParamFunc(int p1, int p2 = 2, int p3 = 3);

optionalParamFunc(1, p3:10); // это эквивалентно optionalParamFunc(1,2,10);