Если text.Length > 3
(скажем, это 4), то:
text.Length - 2 = 2
Итак, ваш код:
string lastThreeChars = text.Substring(2, 4);
Это не удастся, так как вы запрашиваете четыре символов в подстроке, что выводит ее из диапазона.
Метод String.Substring (Int32, Int32)
Извлекает подстроку изэтот экземпляр.Подстрока начинается с указанной позиции символа и имеет указанную длину .
Кроме того, ваш тест и начальная позиция неверны.Не забывайте, что массивы и строки C # проиндексированы нулями.Проверяя регистр длины, строго превышающий 3, вы пропустите случай, когда пользователь ввел ровно три символа, когда вы хотите вернуть всю строку.
Ваш код должен быть:
if (text.Length > 2)
{
string lastThreeChars = text.Substring(text.Length - 3, 3);
}
Если вам не нужно указывать длину:
if (text.Length > 2)
{
string lastThreeChars = text.Substring(text.Length - 3);
}
вернет последние три символа в строке.