One of the things I missed a lot when I moved to C# is optional arguments. In C++ optional arguments are used a lot. Code as below is a common sight. void foo( int reqdParam, int optParam = 0 ) { // ... } foo(5); // gets compiled as foo(5,0) foo(5, 10);