Исключение. Ссылка на объект не указывает на экземпляр объекта - C#
Формулировка задачи:
Доброе время, у меня выбивает исключение и я не могу додуматься как решить его. Може кто подсказать?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace task12 { interface IValidator { bool ValidateUser(User usr, string nameOrEmail); } } \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace task12 { interface IUser { string UserName { get; } string Password { get; } string Email { get; } string GetFullInfo(); } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace task12 { class Program { static void Main(string[] args) { var user = new User(); for(int i=0; ; i++) { user.Login(); } } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace task12 { class Validator : IValidator { public bool ValidateUser (User usr, string nameOrEmail) { if (nameOrEmail.Contains('@')) { for (int i = 1; i < 200; i++) { if (usr.userDataBase[i][1] == nameOrEmail) { usr.BackValue(i); return true; } } } else { for (int i = 1; i < 200; i++) { if (usr.userDataBase[i][0] != null) { if (usr.userDataBase[i][0] == nameOrEmail) { usr.BackValue(i); return true; } } else { return false; } } } return false; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace task12 { class User : IUser { User usr = null; Validator validator = new Validator(); DateTime lastDateTime = DateTime.Now; private int indexInDataBase; string namOrEm; string pass; public string[][] userDataBase = new string[200][]; public User() { userDataBase[0] = new string[] { "userName", "email", "pass", "lastFill" }; } public string UserName { get; private set; } public string Email { get; private set; } public string Password { get; private set; } public string LustFill { get; private set; } public void Login() { Console.WriteLine("Введите логин"); namOrEm = Console.ReadLine(); if (namOrEm == "exit") { Environment.Exit(0); } if (validator.ValidateUser(usr,namOrEm)) { Console.WriteLine("Введите пароль"); pass = Console.ReadLine(); if (pass == "exit") { Environment.Exit(0); } if (userDataBase[indexInDataBase][2] == pass) { GetFullInfo(); } else { Console.WriteLine("Пароль не верно введен!"); } } else { Console.WriteLine("Такого пользователя нету. Добавление."); Console.WriteLine("Введите пароль"); pass = Console.ReadLine(); if (pass == "exit") { Environment.Exit(0); } AddUser(namOrEm, pass); } } public void BackValue(int indxInDataBase) { indexInDataBase = indxInDataBase; } public void InSystem() { LustFill = userDataBase[indexInDataBase][3]; UserName = userDataBase[indexInDataBase][0]; Email = userDataBase[indexInDataBase][1]; Password = userDataBase[indexInDataBase][2]; userDataBase[indexInDataBase][3] = lastDateTime.ToString(); } public void AddUser(string nameOrEmail, string pas) { for (int i = 0; i < userDataBase.Length; i++) { if (userDataBase[i] == null) { if (nameOrEmail.Contains('@')) { userDataBase[i][1] = nameOrEmail; userDataBase[i][0] = "nope Vale"; } else { userDataBase[i][1] = "nope Vale"; userDataBase[i][0] = nameOrEmail ; } userDataBase[i][2] = pas; } } } public string GetFullInfo() { InSystem(); return "\n-------\n"+"Username: "+ UserName + "\nEmail: " +Email+ "\nPassword: "+Password+ "\nLust fill: "+LustFill; } } }
Решение задачи: «Исключение. Ссылка на объект не указывает на экземпляр объекта»
textual
Листинг программы
public void Login() { Console.WriteLine("Enter name"); namOrEm = Console.ReadLine(); if (namOrEm == "exit") { Environment.Exit(0); } if (validator.ValidateUser(this, namOrEm)) { Console.WriteLine("Enter password"); pass = Console.ReadLine(); if (pass == "exit") { Environment.Exit(0); } if (userDataBase[indexInDataBase][2] == pass) { GetFullInfo(); } else { Console.WriteLine("Password wrong!"); } } else { Console.WriteLine("A non-existent user. Addition."); Console.WriteLine("Enter password"); pass = Console.ReadLine(); if (pass == "exit") { Environment.Exit(0); } AddUser(namOrEm, pass); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д