18

重复的问题

将空参数传递给 C# 方法

我可以在 C# 中为 .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...
}

如果没有,我可以做类似的事情吗?

4

3 回答 3

26

是的,假设您故意添加了 V 形并且您的真正意思是:

public void myMethod(string astring, int? anint)

anint现在将拥有一个HasValue属性。

于 2009-03-12T12:18:52.937 回答
18

取决于你想要达到什么。如果您希望能够删除anint参数,则必须创建一个重载:

public void myMethod(string astring, int anint)
{
}

public void myMethod(string astring)
{
    myMethod(astring, 0); // or some other default value for anint
}

您现在可以执行以下操作:

myMethod("boo"); // equivalent to myMethod("boo", 0);
myMethod("boo", 12);

如果您想传递一个可为空的 int,那么请参阅其他答案。;)

于 2009-03-12T12:19:56.850 回答
11

在 C# 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...
}

并调用类似的方法

 myMethod("Hello", 3);
 myMethod("Hello", null);
于 2009-03-12T12:19:09.863 回答