调试一些代码时,我遇到了一个“是 IEnumerable”比较,它在代码中令人困惑地评估为 false,但在即时窗口中为 true。
我想知道是否有人可以阐明为什么会发生这种情况?
例子:
public enum Fruit
{
Apples,
Strawberries
}
public void SomeMethod()
{
object myObj = new Fruit[] { Fruit.Apples, Fruit.Strawberries };
bool isListOfEnums = myObj is IEnumerable<Fruit>; // True
isListOfEnums = myObj is IEnumerable<Enum>; // False in code, but True in Immediate Window when debugged
}
(立即窗口)
? myObj is IEnumerable<Enum>
true