Исключение. Ссылка на объект не указывает на экземпляр объекта - 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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д