代码之家  ›  专栏  ›  技术社区  ›  Vaccano

如何与“无法计算表达式”进行比较?

  •  1
  • Vaccano  · 技术社区  · 14 年前

    Dictionary<string, object> myDictionary = new Dictionary<string, object>();
    

    当我从中获取数据时,我是这样做的:

    myDictionary["IndexingValue"]
    

    大部分时间都在起作用。但我刚刚将它存储的一个值更改为空。现在,当我执行相同的调用(期望为空)时,我得到并异常。当我把它放到调试器中时,它会说 “无法计算表达式” .

    所以我对自己说,“好吧,不知怎么的 IndexingValue 不在字典里。但我去查了一下我的字典条目,果然找到了。

    我想做的是这样的事情:

    if (myDictionary["IndexingValue"] != <Could not evaluate expression>)
    {
        //do some logic.
    }
    

    (即找到某种方法来知道何时不必抛出异常就无法计算表达式。)

    1 回复  |  直到 14 年前
        1
  •  3
  •   Giorgi    14 年前

    你可以用

    if (myDictionary["IndexingValue"] != null)
    {
        //do some logic.
    }
    

    检查项目是否为空。至于“Could Not Evaluate Expression”,它只是一个调试器输出,当它由于某种原因无法获取项的值时,只要字典包含给定的键,那么在运行时就不会出现这样的错误。检查钥匙是否在你能使用的字典里 ContainsKey 方法。