Event -Ссылка на объект не указывает на экземпляр объекта - C#
Формулировка задачи:
Добрый день , запутался , помогите пожалуйста разобраться
При превышение одного числа другого должно срабатывать событие , но что то делаю не так
Необработанное исключение типа "System.NullReferenceException" произошло в door.exe
Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта.
Листинг программы
- 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");
- }
Решение задачи: «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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д