C# - NullReferenceException - В экземпляре объекта не задана ссылка на объект

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

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

Доброго времени суток! Подскажите пожалуйста в чем может быть проблема?
Листинг программы
  1. public partial class DateTimePanel : UserControl {
  2. // vars
  3. private int curTime;
  4. public int getTime {
  5. get { return curTime; }
  6. }
  7. public DateTime getDate {
  8. get { return DateTime.Now; }
  9. }
  10. // events
  11. public event SelectDateEventHandler SelectDate;
  12. public event TickTimerEventHandler TickTimer;
  13. protected virtual void OnSelectDate(SelectDateEventArgs e) {
  14. SelectDate(this, e);
  15. }
  16. protected virtual void OnTickTimer(TickTimerEventArgs e) {
  17. TickTimer(this, e);
  18. }
  19. //
  20. public DateTimePanel() {
  21. InitializeComponent();
  22. }
  23. public bool setTimer(bool en) {
  24. curTime = -1;
  25. mainTimer.Enabled = en;
  26. return mainTimer.Enabled;
  27. }
  28. private void calendar_DateSelected(object sender, DateRangeEventArgs e) {
  29. OnSelectDate(new SelectDateEventArgs(e.Start));
  30. }
  31. private void mainTimer_Tick(object sender, EventArgs e) {
  32. int H, M, time;
  33. string strtime;
  34. strtime = DateTime.Now.ToLongTimeString();
  35. H = Int32.Parse(strtime.Substring(0, 2));
  36. M = Int32.Parse(strtime.Substring(3, 2));
  37. time = H * 60 + M;
  38. if (curTime != time) {
  39. curTime = time;
  40. OnTickTimer(new TickTimerEventArgs(time));
  41. }
  42. dateLbl.Text = DateTime.Now.ToLongDateString();
  43. timeLbl.Text = strtime;
  44. }
  45. }
  46. public delegate void SelectDateEventHandler(object sender, SelectDateEventArgs e);
  47. public delegate void TickTimerEventHandler(object sender, TickTimerEventArgs e);
  48. public class SelectDateEventArgs : EventArgs {
  49. private DateTime date;
  50. public SelectDateEventArgs(DateTime date) {
  51. this.date = date;
  52. }
  53. public DateTime SelectedDate {
  54. get { return date; }
  55. }
  56. }
  57. public class TickTimerEventArgs : EventArgs {
  58. private int time;
  59. public TickTimerEventArgs(int time) {
  60. this.time = time;
  61. }
  62. public int getTime {
  63. get { return time; }
  64. }
  65. }
  66. }
Листинг программы
  1. protected virtual void OnSelectDate(SelectDateEventArgs e) {
  2. SelectDate(this, e);
  3. }
отлично работает, а на
Листинг программы
  1. protected virtual void OnTickTimer(TickTimerEventArgs e) {
  2. TickTimer(this, e);
  3. }
вылетает NullReferenceException

Решение задачи: «C# - NullReferenceException - В экземпляре объекта не задана ссылка на объект»

textual
Листинг программы
  1. var tmp = TickTimer;
  2. if (tmp != null) tmp(this, e);
  3.  
  4. var tmp = SelectDate;
  5. if (tmp != null) tmp(this, e);

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


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

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

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

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

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

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