我的程序一直在抛出一个错误,因为它到了一条它应该永远不会到达的行。我正在使用Visual Studio Professional 2012,当我运行我的程序时,它当然会停止代码并让我通过将光标悬停在变量上来调试它以获取所有信息。在我的代码中,我有一个在代码中更早定义的变量(称为curObj),以及一个称为part的字符串。 curObj的值是CustomObject类型。但是,以下if语句仍然返回false:
object curObj = null;
foreach (Dictionary<string, CustomVariable> variables in vars)
{
if (!variables.ContainsKey(part)) continue;
curObj = GetValueOfVariable(variables[part]);
break;
}
CustomObject cusObj = curObj as CustomObject;
if (cusObj != null)
curObj = GetValueOfVariable(((CustomObject) curObj).GetVariable(part));
else
curObj = curObj.GetType().GetField(part).GetValue(curObj);
出于某种原因,即使curObj实际上是一个CustomObject,正如Visual Studio在遇到此错误时给出的细节所证明的那样,当它到达这一点时cusObj仍为null。我做错了什么?