Nullable Method Arguments in C# [duplicate]

2019-04-05 18:10发布

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?

3条回答
可以哭但决不认输i
2楼-- · 2019-04-05 18:24

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

查看更多
We Are One
3楼-- · 2019-04-05 18:25

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);
查看更多
你好瞎i
4楼-- · 2019-04-05 18:38

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.

查看更多
登录 后发表回答