Пустая коллекция или null (часть 2)
Бывают ли ситуации, когда все же имеет смысл возвращать null вместо пустой коллекции?
Пожалуй, тут основной посыл, когда null в качестве возвращаемого значения несет в себе важный бизнес смысл или указывает на отсутствие самого объекта, а не набора данных.
То есть в таком случае логика заключается в том, что делается акцент не на том что еще нет данных, а их в принципе нет для определенной сущности, для которой пытаются получить набор данных или обертку с этими данными.
Иногда (очень редко) требуется экономия ресурсов - тут тоже null вместо пустой коллекции может подойти.
Также при работе с легаси кодом, устаревшей библиотекой или специфическим апи, где null является нормой в случае отсутствия данных, приходится следовать такому же подходу.
‼️Совет: Чтобы обезопасить работу с null, надо использовать nullable типы для возвращаемых значений: // Вопросительный знак явно говорит компилятору - метод может вернуть null: public List? GetUsers() { }
Среда разработки сама подсветит предупреждением код на стороне вызова, если кто-то попытается обратиться к свойствам User, не проверив его предварительно на null.