Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
// Нормальное поведение
string x = null;
x.Trim(); // Тут у нас NullReferenceException, т.к. Trim - экземплярный метод
// Поведение описанного extension-метода
IEnumerable<object> y = null;
y.IsNullOrEmpty(); // никаких эксепшнов
// Как правильно
string.IsNullOrEmpty(x); // И никаких эксепшнов, и выглядит логично
Любой ValueType не может быть null.
Что касается вашего вопроса — вы видимо никогда не писали чего-то рассчитанного на публичное использование, когда вы не можете делать предположения о корректности входных параметров.
Проверки на пустые перечисления