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