当提供的字符串不为null时,string.IsNullOrEmpty返回true

Mac*_*iej 6 c# .net-4.5

我有一个单元测试,它调用传递字符串的对象上的方法.

被调用方法的第一件事就是检查字符串是否为null或为空.

但是,无论filePath的值是什么,对string.IsNullOrEmpty的调用都为true.见下图.

为什么字符串为null或为空

我在这里错过了什么吗?

编辑:

检查null和string.Empty分别按预期工作:

在此输入图像描述

编辑2:

我已经清理了解决方案,通过文件系统删除了bin目录,并且在重建之后,调试器显示应该抛出ArgumentNullException,尽管它实际上没有被抛出.

Adr*_*iro 5

的内容filePath是绝对不为空(不是空的),这样给我们留下了两个选项:

  • 您有一个更宽的范围变量(即全局变量)named filePath,在null时为空
  • 您的调试器正在引用旧版本的二进制文件.在这种情况下,claear并重建解决方案

更新

你的问题更新让我觉得第二个选项(上面的选项)是一个