c# - 这是三元运算符的合理使用吗?

标签 c# c++ c ternary

<分区>

像这样的代码是否会导致任何理解/可维护性问题

inVar1 == 0 ? NULL : v.push_back(inVar1);
inVar2 == 0 ? NULL : v.push_back(inVar2);

等等。

可能令人困惑的想法是将三元运算符用于程序流而不是变量赋值,这是通常的解释。

我还没有看到解决这种用法的编码标准,所以虽然我很乐意这样做,但我想看看是否有充分的理由不这样做。

最佳答案

我认为这比简单地打字更令人困惑并且更难阅读;

if (inVar != 0)
  v.push_back(inVar);

我不得不多次扫描您的示例,以确定结果是什么。我什至更喜欢单行 if() {} 语句而不是你的例子 - 我讨厌单行 if 语句:)

关于c# - 这是三元运算符的合理使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/522919/

相关文章:

c# - 从 C# 评估 Html/javascript

c# - 加载巨大的 DBpedia 转储时出现内存不足异常

c++ - 一元 - 使用友元函数重载运算符

C++ - 增加二维字符串 vector 中外部 vector 的大小

c - 如何使用 scanf 从下一行输入数据中获取输入?

c - 为什么我的指针数组在动态分配后被覆盖?

c++ - 如何在二进制文件中设置内置版本号?

c# - 如何将PNG图像转换为灰度而不丢失透明度C#

c# - 单击超链接字段时获取 gridview 的索引

c++ - BGL : storing vertex descriptors in a way that they won't invalidate