System :: Boolean变量上的三元运算符

时间:2012-01-05 15:21:52

标签: c++-cli

如何在System :: Boolean中使用三元运算符?此示例代码始终返回true:

bool Test(Boolean^ value)
{
  return value ? true : false;
}

2 个答案:

答案 0 :(得分:1)

首先使用System::Boolean是错误的,它与三元运算符无关。永远不要传递值类型作为参考。

不管不必要的惩罚,你的答案中的代码都可以使用,但不能用于C#。当您想要调用bool Test(Boolean^ value)函数时,编译器会抱怨。因为C#中没有引用值类型的概念。

答案 1 :(得分:0)

回答我自己过早的问题,这段代码有效:

bool Test(Boolean^ value)
{
  return (bool)value ? true : false;
}

编辑:更好(并遵循Hans'和Matt的建议),这段代码效果更好:

bool Test(Boolean value)
{
  return value ? true : false;
}

或者,因为布尔值和布尔值是可转换的,所以这也是一个很好的代码,它依赖于其他地方发生的自动转换。除了显示三元运算符之外,示例几乎没有意义:

bool Test(bool value)
{
  return value ? true : false;
}