【发布时间】:2012-02-27 11:55:39
【问题描述】:
我在 (true==true) 返回 false 时遇到问题。
Console.WriteLine(
useaction.Postcondition[goalneeds].ToString() + "==" +
current[goalneeds].ToString() + " returns " +
(useaction.Postcondition[goalneeds] == current[goalneeds]).ToString());
输出:True==True returns False
useaction.Postcondition 与 current 的类型相同。
尽管预览颜色显示,“后置条件”不是静态的
感谢您的帮助,我不知道我可以分享任何其他相关信息。
解决方案:
bool a = (bool)useaction.Postcondition[goalneeds];
bool b = (bool)current[goalneeds];
Console.WriteLine(a.ToString() + "==" + b.ToString() + " returns " + (a==b).ToString());
第一个代码比较了对象类型。第二个代码比较布尔值。
【问题讨论】:
-
useaction.Postcondition[goalneeds]是真的bools吗? -
两个数组的类型是什么?
-
useaction.Postcondition是什么类型?你是否在另一个线程中改变了其中一个集合? -
true=="true"与true==true不同 -
这些布尔值是从哪里来的?清理托管代码?或者可能是非托管代码或不安全的托管代码?