Nullable Method Arguments in C#

87,878

Solution 1

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.

Solution 2

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. ;)

Solution 3

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);
Share:
87,878
Admin
Author by

Admin

Updated on March 13, 2020

Comments

  • Admin
    Admin over 4 years

    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?