Анализатор обнаружил, что выражение 'return', всегда возвращает пустую коллекцию, которая была определена как локальная переменная. Чаще всего это происходит из-за того, что в коллекцию забыли добавить элементы.
Пример:
List<string> CreateDataList() { List<string> list = new List<string>(); string data = DoSomething(); return list; }
В данном примере забыли добавить элемент 'data' в 'list'. Поэтому метод всегда будет возвращать пустую коллекцию. Исправленный вариант:
List<string> CreateDataList() { List<string> list = new List<string>(); string data = DoSomething(); list.Add(data); return list; }
Иногда программисты создают метод, который только и делает, что создает и возвращает коллекцию. Например, так:
List<List<CustomClass>> CreateEmptyDataList() { var list = new List<List<CustomClass>>(); return list; }
Или так:
List<List<CustomClass>> CreateEmptyDataList() { return new List<List<CustomClass>>(); }
Это используется для некоторых паттернов программирования, или если тип коллекции имеет очень длинное название. Анализатор понимает такие ситуации и не выдаёт на них предупреждения.