10

Consider the following method example:

public void MyMethod (string par1, bool par2 = "true", string par3="")
{
}

Now let's say that I call MyMethod and set par3's value to "IamString".

How could I do that without setting par2's value to true or false?

I basically want to leave par2 value to its default.

I'm asking this because in Flash's ActionScript it is possible to do that by using the keyword default so I could call MyMethod ("somestring", default, "IamString") and par2 would be interpreted as true, which is its default value. I wonder if it is possible in C# as well.

burning_LEGION
  • 12,864
  • 8
  • 38
  • 50
IneedHelp
  • 1,404
  • 1
  • 26
  • 54

2 Answers2

16
public void MyMethod (string par1, bool par2 = "true", string par3=""){}
Myclass.MyMethod(par1:"par1", par3:"par3");

By the way, this won't work: bool par2 = "true"

string par2 = "true"

or

bool par2 = true

Talking about default values, you could also use this to get the default value for a particular type:

default(T)

SeToY
  • 5,557
  • 11
  • 49
  • 92
  • Thank you! And yeah, you're right bool par2 = "true" won't work. It's a mistake I've did while trying to layout a simple example. – IneedHelp Aug 10 '12 at 12:29
  • Yes, it just doesn't let me because you recently edited your answer. I will be able to accept it in 1 minute. – IneedHelp Aug 10 '12 at 12:32
12

You can specify this by name the parameter:

instance.MyMethod( "Hello", par3:"bla" );

Have a look here.

And there is another bug:

bool par2 = true

is correct..

tuxtimo
  • 2,631
  • 19
  • 29