Так что этот фрагмент кода является небольшой частью моей программы. По сути, он считывает файл информации о пользователе, в котором хранятся полные имена, банковские балансы, имена пользователей и пароли.
Мой вопрос: почему, когда я ввожу имя пользователя, которого НЕ в файле, оно выдает ошибку, когда есть оператор if, который говорит, что имя пользователя не найдено, а затем перейти к методу регистрации?
public static int player;
public static void Username_Check()
{
string[] str = File.ReadAllText(@"X:\btec computing\unit 1\C sharp\online_casino_prog\user_info.csv").Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
string[] users = new string[str.Length];
Console.WriteLine("Enter your username. ");
string username = Console.ReadLine();
bool user_found = false;
for (int i = 0; i < (str.Length); i++)
{
string[] person = str[i].Split(',');
if (person[2] == username)
{
Console.WriteLine("Welcome back {0}!", person[0]);
user_found = true;
player = i;
Password_Check();
}
}
if (user_found == false)
{
Console.WriteLine("Sorry, we could not find an account linked to the username '{0}', Please register an account with us! ",username);
Register();
}
}
Это ошибка, которую я получаю:
Необработанное исключение: System.IndexOutOfRangeException: индекс находился за пределами массива.
в online_casino_prog.Program.Username_Check () в X: \ btec computing \ unit 1 \ C sharp \ online_casino_prog \ online_casino_prog \ Program.cs: строка 58
в online_casino_prog.Program.Main (String [] args) в X: \ btec computing \ unit 1 \ C sharp \ online_casino_prog \ online_casino_prog \ Program.cs: строка 30
Этот фрагмент показывает CSV-файл, который я использую для отображения информации о пользователе. Форматируется так: имя, фамилия, имя пользователя, пароль, баланс