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

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

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

Добрый день , запутался , помогите пожалуйста разобраться
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace door
  6. {
  7. //--------------------------------
  8. /* class Handler1
  9. {
  10. public void Message()
  11. {
  12. Console.WriteLine("count cтал больше или равен maxValue");
  13. }
  14. }*/
  15. /* class Handler2
  16. {
  17. public void Message()
  18. {
  19. Console.WriteLine("");
  20. }
  21. }*/
  22. //------------------------------------
  23. class count
  24. {
  25. public delegate void MethodContainer();
  26. public event MethodContainer onMaxValueReached;
  27. private int countt;
  28. private int diif;
  29. private int MaxValue;
  30. //-------------------------------
  31. public int Diif
  32. {
  33. get { return diif; }
  34. set { diif = value; }
  35. }
  36. public int MaxValue1
  37. {
  38. get { return MaxValue; }
  39. set { MaxValue = value; }
  40. }
  41. public int Countt
  42. {
  43. get { return countt; }
  44. set { countt = value; }
  45. }
  46. //------------------------------
  47. public count()
  48. {
  49. this.countt = 100;
  50. this.diif = 5;
  51. this.MaxValue = 105;
  52. }
  53. public count(int countt, int diif, int MaxValue)
  54. {
  55. this.countt = countt;
  56. this.diif = diif;
  57. this.MaxValue = MaxValue;
  58. }
  59. /*public void Count()
  60. {
  61. for( int i =countt; countt <= MaxValue; countt+=diif)
  62. {
  63. Console.WriteLine(countt);
  64. if (countt == MaxValue)
  65. {
  66. onCount();
  67. }
  68. }
  69. }*/
  70. public void Count()
  71. {
  72. countt += diif;
  73. if (countt >= MaxValue)
  74. {
  75. onMaxValueReached();
  76. //Console.WriteLine("Count больше MaxValue ");
  77. }
  78. else Console.WriteLine("Count меньше MaxValue");
  79. }
  80. public void Tostring()
  81. {
  82. Console.WriteLine("count="+countt + " diif=" + diif + " MaxValue=" + MaxValue);
  83. }
  84. }
  85. class TesEvent
  86. {
  87. private String name;
  88. public String Name
  89. {
  90. get { return name; }
  91. set { name = value; }
  92. }
  93. public TesEvent()
  94. {
  95. this.name = "name";
  96. }
  97. public TesEvent(String name)
  98. {
  99. this.name = name;
  100. }
  101.  
  102. public void Message()
  103. {
  104. Console.WriteLine(name + " count cтал больше или равен maxValue");
  105. }
  106. public void EVT(count other, int countt, int diff, int maxvalue)
  107. {
  108. other = new count(countt, diff, maxvalue);
  109. other.Count();
  110. other.onMaxValueReached += new count.MethodContainer(Message);
  111. other.onMaxValueReached += new count.MethodContainer(other_onMaxValueReached);
  112. other.Tostring();
  113. }
  114. void other_onMaxValueReached()
  115. {
  116. throw new NotImplementedException();
  117. }
  118. }
  119. class Program
  120. {
  121. static void Main(string[] args)
  122. {
  123. count Counter = new count();
  124. // Handler1 h1 = new Handler1();
  125. TesEvent ev = new TesEvent("CoC");
  126. ev.EVT(Counter, 5, 5,10);
  127. TesEvent ev1 = new TesEvent("CoC2");
  128. ev1.EVT(Counter, 50, 5, 110);
  129. TesEvent ev3 = new TesEvent("Coc3");
  130. //Handler2 h2 = new Handler2();
  131. Counter.onMaxValueReached += ev.Message;
  132. Counter.onMaxValueReached += ev1.Message;
  133. // Counter.onMaxValueReached += h2.Message;
  134. //Запустили счетчик
  135. // Counter.Count();
  136. Console.ReadKey();
  137. }
  138. }
  139. }
При превышение одного числа другого должно срабатывать событие , но что то делаю не так
Листинг программы
  1. public void Count()
  2. {
  3. countt += diif;
  4. if (countt >= MaxValue)
  5. {
  6. onMaxValueReached();
  7. //Console.WriteLine("Count больше MaxValue ");
  8. }
  9. else Console.WriteLine("Count меньше MaxValue");
  10. }
Необработанное исключение типа "System.NullReferenceException" произошло в door.exe Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта.

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

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

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


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

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

9   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы