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