等效于 c 的 C# 空合并运算符

新手上路,请多包涵

C# null 合并运算符是否有 C++ 等价物?我在我的代码中做了太多的空检查。因此正在寻找一种方法来减少空代码的数量。

原文由 aajkaltak 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 882
2 个回答

在 C++ 中默认情况下没有办法做到这一点,但你可以写一个:

在 C# 中的 ??运算符定义为

a ?? b === (a != null ? a : b)

所以,C++ 方法看起来像

Coalesce(a, b) // put your own types in, or make a template
{
    return a != null ? a : b;
}

原文由 McKay 发布,翻译遵循 CC BY-SA 2.5 许可协议

我刚发现这个: ??运算符又名空合并运算符

您还可以使用 ?: 运算符在 C/C++ 中将其作为 GNU 扩展:

 string pageTitle = getTitle() ?: "Default Title";

原文由 adamjhilton 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题