Duplicate Question
Passing null arguments to C# methods
Can I do this in c# for .Net 2.0?
public void myMethod(string astring, int? anint)
{
//some code in which I may have an int to work with
//or I may not...
}
If not, is there something similar I can do?
Yes, assuming you added the chevrons deliberately and you really meant:
public void myMethod(string astring, int? anint)
anint
will now have a HasValue
property.
Depends on what you want to achieve. If you want to be able to drop the anint
parameter, you have to create an overload:
public void myMethod(string astring, int anint)
{
}
public void myMethod(string astring)
{
myMethod(astring, 0); // or some other default value for anint
}
You can now do:
myMethod("boo"); // equivalent to myMethod("boo", 0);
myMethod("boo", 12);
If you want to pass a nullable int, well, see the other answers. ;)
In C# 2.0 you can do;
public void myMethod(string astring, int? anint)
{
//some code in which I may have an int to work with
//or I may not...
}
And call the method like
myMethod("Hello", 3);
myMethod("Hello", null);