对空对象调用Any()时,它会在C#中抛出ArgumentNullException.如果对象为null,则肯定没有"any",并且它可能会返回false.
C#为什么会这样?
对空对象调用Any()时,它会在C#中抛出ArgumentNullException.如果对象为null,则肯定没有"any",并且它可能会返回false.
C#为什么会这样?
在处理引用类型时,值null
与"空"值在语义上是不同的.
null
字符串与string.Empty
不同,null
IEnumerable<T>
与Enumerable.Empty<T>
不同(或该类型的任何其他"空"可枚举项).
如果Any
不是扩展方法,则在null
上调用它将导致NullReferenceException
.因为它is是一个扩展方法,所以抛出一些异常(虽然不是必须的)是个好主意,因为它保留了try 调用null
:BOOM!上的方法的众所周知的语义