我有一个带有两个可以为空的int参数的方法。我想传递一个参数而另一个我要传递null。我在谷歌搜索但是我没有找到任何正确的答案。谁能帮我。下面是一个示例方法,如何调用CallNullable方法。
public void CallNullable(int? x, int? y)
{
int z = (x.HasValue ? x.Value : 0) + (y.HasValue ? y.Value : 0);
}
答案 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);