Пустая коллекция или null (часть 2)

Бывают ли ситуации, когда все же имеет смысл возвращать null вместо пустой коллекции?

Пожалуй, тут основной посыл, когда null в качестве возвращаемого значения несет в себе важный бизнес смысл или указывает на отсутствие самого объекта, а не набора данных.

То есть в таком случае логика заключается в том, что делается акцент не на том что еще нет данных, а их в принципе нет для определенной сущности, для которой пытаются получить набор данных или обертку с этими данными.

Иногда (очень редко) требуется экономия ресурсов - тут тоже null вместо пустой коллекции может подойти.

Также при работе с легаси кодом, устаревшей библиотекой или специфическим апи, где null является нормой в случае отсутствия данных, приходится следовать такому же подходу.

‼️Совет: Чтобы обезопасить работу с null, надо использовать nullable типы для возвращаемых значений: // Вопросительный знак явно говорит компилятору - метод может вернуть null: public List? GetUsers() { }

Среда разработки сама подсветит предупреждением код на стороне вызова, если кто-то попытается обратиться к свойствам User, не проверив его предварительно на null.