Optional parameters
- public void Method1(int x, int y = 3, int z = 7);
- Method1(10, 11, 12); //ordinary call of Method1
- Method1(10, 11); // x = 10, y = 11, z = 7
- Method1(10); // x = 10, y = 3, z = 7
: 가장 바라던 기능. 수많은 overload 함수들을 제거할 수 있게 된다. 다른 .NET Framework API들에서도 많은 변화가 있을 것 같다는 생각이 든다.
Named and optional arguments
- public void Method1(int x, int y = 3, int z = 7);
- Method1(10, 11, 12); //ordinary call of Method1
- Method1(x : 1, z : 10); // x = 1, y = 3, z = 10
- Method1(z : 10, x : 1); // x = 1, y = 3, z = 10 : reversing the order of arguments