tags:

views:

443

answers:

3

In other languages I can set up the method signature like

cookEgg(boolean hardBoiled = true)

this defaults the parameter hardboiled to true, if I don't receive a parameter in the method call. How would I achieve this in c#?

Many thanks

+19  A: 

At present, you have to overload the method:

void cookEgg(bool hardBoiled) { ... }
void cookEgg() { cookEgg(true); }

C# 4.0 will add optional arguments - you will be able to write code exactly as in your original sample, and it will work as you'd expect.

Pavel Minaev
I'm looking forward to this feature tbh. Rather annoying to have to make an overloaded method to have this feature at the moment. I'm also hoping for static extension methods (extending a static class, like... System.String or something).
Zack
I must be missing something, as you can easily define extension methods for `System.String` in C# 3.0.
Pavel Minaev
A: 

This is not what you look exactly but I think params argument is another answer.

void test(params int []arg) { }
adatapost
+2  A: 

Default parameters are supported in C# 4 (Visual Studio 2010).

http://msdn.microsoft.com/en-us/library/dd264739(VS.100).aspx

QrystaL