Event -Ссылка на объект не указывает на экземпляр объекта - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день , запутался , помогите пожалуйста разобраться
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace door
{
    //--------------------------------
    /* class Handler1
     {
         public void Message()
         {
             Console.WriteLine("count cтал больше или равен maxValue");
         }
     }*/
    /* class Handler2
     {
         public void Message()
         {
             Console.WriteLine("");
         }
     }*/
    //------------------------------------
    class count
    {
        public delegate void MethodContainer();
        public event MethodContainer onMaxValueReached;
        private int countt;
        private int diif;
        private int MaxValue;
        //-------------------------------
        public int Diif
        {
            get { return diif; }
            set { diif = value; }
        }
 
        public int MaxValue1
        {
            get { return MaxValue; }
            set { MaxValue = value; }
        }
 
        public int Countt
        {
            get { return countt; }
            set { countt = value; }
        }
        //------------------------------
        public count()
        {
            this.countt = 100;
            this.diif = 5;
            this.MaxValue = 105;
        }
        public count(int countt, int diif, int MaxValue)
        {
            this.countt = countt;
            this.diif = diif;
            this.MaxValue = MaxValue;
        }
        /*public  void Count()
        {
           
            for( int  i =countt; countt <= MaxValue; countt+=diif)
            {
                Console.WriteLine(countt);
                if (countt == MaxValue)
                {
                    onCount();
                }
            }
 
        }*/
        public void Count()
        {
            countt += diif;
            if (countt >= MaxValue)
            {
                onMaxValueReached();
                //Console.WriteLine("Count больше MaxValue ");
            }
            else Console.WriteLine("Count меньше MaxValue");
 
        }
        public void Tostring()
        {
            Console.WriteLine("count="+countt + " diif=" + diif + " MaxValue=" + MaxValue);
        }
    }
 
    class TesEvent
    {
        private String name;
 
        public String Name
        {
            get { return name; }
            set { name = value; }
        }
        public TesEvent()
        {
            this.name = "name";
        }
        public TesEvent(String name)
        {
            this.name = name;
 
        }

        public void Message()
        {
            Console.WriteLine(name + " count cтал больше или равен maxValue");
        }
        public void EVT(count other, int countt, int diff, int maxvalue)
        {
            other = new count(countt, diff, maxvalue);
            other.Count();
            other.onMaxValueReached += new count.MethodContainer(Message);
            other.onMaxValueReached += new count.MethodContainer(other_onMaxValueReached);
            other.Tostring();
 
        }
 
        void other_onMaxValueReached()
        {
            throw new NotImplementedException();
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            count Counter = new count();
            // Handler1 h1 = new Handler1();
            TesEvent ev = new TesEvent("CoC");
            ev.EVT(Counter, 5, 5,10);
            TesEvent ev1 = new TesEvent("CoC2");
            ev1.EVT(Counter, 50, 5, 110);
            TesEvent ev3 = new TesEvent("Coc3");
            //Handler2 h2 = new Handler2();
            Counter.onMaxValueReached += ev.Message;
            Counter.onMaxValueReached += ev1.Message;
            // Counter.onMaxValueReached += h2.Message;
            //Запустили счетчик
       //     Counter.Count();
            Console.ReadKey();
        }
    }
}
При превышение одного числа другого должно срабатывать событие , но что то делаю не так
 public void Count()
        {
            countt += diif;
            if (countt >= MaxValue)
            {
                onMaxValueReached();
                //Console.WriteLine("Count больше MaxValue ");
            }
            else Console.WriteLine("Count меньше MaxValue");
 
        }
Необработанное исключение типа "System.NullReferenceException" произошло в door.exe Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта.

Решение задачи: «Event -Ссылка на объект не указывает на экземпляр объекта»

textual
Листинг программы
public void EVT(count other, int countt, int diff, int maxvalue)
        {
            other = new count(countt, diff, maxvalue);
            other.onMaxValueReached += new count.MethodContainer(Message);
            other.onMaxValueReached += new count.MethodContainer(other_onMaxValueReached);
            other.Count();
            other.Tostring();
 
        }

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


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

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

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