У нас есть собственный метод расширения .IsNullOrEmpty()
, который делает именно то, что и звучит.
public static bool IsNullOrEmpty<T>(this IEnumerable<T> target)
{
bool flag = true;
if (target != null)
{
using (IEnumerator<T> enumerator = target.GetEnumerator())
{
if (enumerator.MoveNext())
{
T current = enumerator.Current;
flag = false;
}
}
}
return flag;
}
Тем не менее, parasoft не распознает это как действительную нулевую проверку и выдает
BD.EXCEPT.NR-1: избегать исключения NullReferenceException
вскоре после использования метода расширения.
Пример:
IEnumerable<Foo> foos = _repo.GetFoos();
IEnumerable<Bar> bars;
if (!foos.IsNullOrEmpty())
{
bars = foos.Select(foo => foo.Bar); // This is where the Parasoft violation would occur.
}
Есть ли способ заставить Parasoft распознать наш метод расширения?