Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
V3199. The index from end operator...
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V3199. The index from end operator is used with the value that is less than or equal to zero. Collection index will be out of bounds.

05 Июн 2024

Анализатор обнаружил доступ к элементу коллекции с помощью оператора '^' со значением, которое меньше или равно 0. Это приводит к исключению типа 'IndexOutOfRangeException'.

Рассмотрим пример:

T GetLastItem<T>(T[] array)
{
    return array[^0];
}

Оператор '^' указывает, что индекс учитывается с конца последовательности. Может быть не очевидно, что '^0' равносильно 'array.Length'. При попытке получения последнего элемента коллекции с помощью '^0' будет выброшено исключение, как и при использовании 'array[array.Length]'.

Исправленный код:

T GetLastItem<T>(T[] array)
{
    return array[^1]; 
}

Данная диагностика классифицируется как: