Foo(20, 30)
равен Foo(20, 30, 10)
(значение по умолчанию добавляется в вызов компилятором). Если вы хотите указать третий, но не хотите указывать второй параметр, вам все равно нужно указать какое-то значение на вызов функции Foo(20, ..., 30)
.В основном, в таких случаях, специальные значения определены для второго параметра, что-то вроде
/// <summary>
/// </summary>
/// <param name="y">Y parameter. Can be 0. Default value: 23</param>
void Foo(int x, int y = 23, int z = 10)
так, что вы будете называть его Foo(20, 0, 30)
или, если существует константа определена, более четко:
const int IGNORED = 0;
...
Foo(20, IGNORED, 30);
Однако было бы неплохо предоставить не специальное, а значение по умолчанию, и здесь вы можете полностью опустить необязательные параметры (как указывают другие ответы): Foo(20, z: 30)
, который будет преобразован компилятором в звонок Foo(20, 23, 30)
(значение по умолчанию взято для второго параметра).
Почему бы не попробовать и не посмотреть? :) – Kjartan
Почему бы вам не попробовать себя? –
http://msdn.microsoft.com/en-us/library/dd264739.aspx – Priyank