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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы