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();
}