Huzaifa Abbas Ответов: 2

Ошибка: startindex не может быть меньше нуля.


i got "StartIndex cannot be less than zero.
Parameter name: startIndex" 
После сохранения изменений в базе данных он выдает ошибку на этой строке.
string pHOF = a.HOF.ToString().Substring(Convert.ToString(a.HOF).Length - 3);

Пожалуйста, помогите мне, это очень срочно.
Спасибо.

Что я уже пробовал:

Я новичок в MVC и не знаю, как отлаживать.

2 Ответов

Рейтинг:
0

Bryian Tan

@OriginalGriff прав, метод подстроки делает этот один параметр. В этом случае он будет рассматривать параметр как начальный индекс. Попробуйте отладить код, чтобы увидеть, что в HOF. Длина HOF должна быть 3 или более в соответствии с тем, что здесь размещено.

Пример ниже выведет: ЦДО поскольку 5 - 3 = 2, он начнет считываться из позиции 2 (0,1,2,3,4), которая является c.

object HOF = "abcde";
		
string pHOF = HOF.ToString().Substring(Convert.ToString(HOF).Length - 3);


Пример ниже выведет: StartIndex не может быть меньше нуля. Имя параметра: startIndex поскольку 2 - 3 = -1, startIndex должен быть равен 0 или больше.
object HOF = "ab";
		
string pHOF = HOF.ToString().Substring(Convert.ToString(HOF).Length - 3);

Как уже упоминалось в ошибке, метод подстроки пропускает начальный индекс. Это должна быть подстрока(startinxex, endindex). В вашем сценарии это было бы что-то вроде .Подстрока(0, a.HOF.Length -3)

c - поиск в Google[^]


OriginalGriff

ГМ... струна.Подстрока имеет две перегрузки: одна из которых принимает два параметра, а другая просто требует начального индекса.

Bryian Tan

вы правы.

Huzaifa Abbas

string pHOF = a.HOF.ToString().Substring(0, Convert.Метод toString(а.Хоф).Длина - 3 м);

Теперь длина возврата не может быть меньше нуля.
Имя параметра: длина

Извините Сэр

Рейтинг:
0

OriginalGriff

Проверьте свой исходный ввод: если длина <pre>Convert.ToString(a.HOF)</pre> если их будет два или меньше, то начальный индекс для подстроки будет отрицательным, и вы получите эту ошибку.

Используйте отладчик и проверьте, что именно находится внутри a.HOF прежде чем вы выполните этот код.