如何在c#中调用具有可空参数的方法

时间:2015-03-04 10:17:46

标签: c# asp.net

我有一个带有两个可以为空的int参数的方法。我想传递一个参数而另一个我要传递null。我在谷歌搜索但是我没有找到任何正确的答案。谁能帮我。下面是一个示例方法,如何调用CallNullable方法。

 public void CallNullable(int? x, int? y)
 {
     int z = (x.HasValue ? x.Value : 0) + (y.HasValue ? y.Value : 0);
 }

2 个答案:

答案 0 :(得分:1)

您调用它们就像调用接受相同类型的非可空值的方法一样(除了您可以使用null值)

public void Main()
{
    CallNullable(23, null);
}

public void CallNullable(int? x, int? y)
{
    int z = (x.HasValue ? x.Value : 0) + (y.HasValue ? y.Value : 0);
}

顺便说一句(警告,如果您刚刚开始编程,这可能会令人困惑),您可以使用null-coalescing (??) operator来简化您的代码:

public void CallNullable(int? x, int? y)
{
   int z = (x ?? 0) + (y ?? 0);
}

??如果不是 null,则使用运算符左侧的值,否则使用右侧的值。

答案 1 :(得分:0)

试试这个

 public void CallNullable(int? x, int? y)
    {
        int z = (x.HasValue ? x.Value : 0) + (y.HasValue ? y.Value : 0);
    }

你可以像这样打电话

 int? i=2;
 int? b=1;
 CallNullable(i, b);