gpt4 book ai didi

c# - 下面的空条件运算符有什么问题?

转载 作者:太空狗 更新时间:2023-10-29 22:22:19 25 4
gpt4 key购买 nike

有什么问题

public int Add(int? a, int? b)
{
return (a?.0 + b?.0);
}

编译错误:无法隐式转换类型“int”?到“ bool ”

只是想尝试以 C#6.0 的方式添加两个可为 null 的整数。

我也知道其他方法(如 hasvalue 等),但我正在试验这个新运算符。

最佳答案

首先,当 x 是一个 int? 时,x?.0 没有任何意义。 0 不是 int? 的属性或方法。

您似乎在尝试使用空合并运算符 ?? 而不是空条件运算 ?.。如果是这种情况,您的方法应如下所示:

public int Add(int? a, int? b)
{
return a ?? 0 + b ?? 0;
}

如果不是这种情况,而你的意思是 ?. 那么你可以使用 int 的扩展方法测试这个运算符,它只返回它的值:

public static int Identity(this int value)
{
return value;
}

并像您最初尝试的那样使用它(但使用 int?):

public int? Add(int? a, int? b)
{
return a?.Identity() + b?.Identity();
}

但是,如果您只想将这些 int? 参数组合在一起,则不需要任何新的东西。这很有效:

public int? Add(int? a, int? b)
{
return (a + b);
}

当两个参数都不为null时,两个选项都会返回一个结果,否则会返回null

关于c# - 下面的空条件运算符有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28958621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com