如何在System :: Boolean中使用三元运算符?此示例代码始终返回true:
bool Test(Boolean^ value)
{
return value ? true : false;
}
答案 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;
}