Я создаю систему EPoS для университетского проекта, но я столкнулся с кирпичной стеной с куском сложного кода, касающегося событийных аргументов.C# Нулевая ссылка, вызывающая проблемы для пользовательских EventArgs
Эти фрагменты кода находятся в форме платежа, которая обрабатывает конец транзакции. Я объявил PaymentMadeEvent, как так:
public delegate void PaymentMadeEvent(object sender, paymentMadeEventArgs e);
public event PaymentMadeEvent PaymentForm_PaymentMade;
Следующая я объявил булево значение в отдельном общественном классе в нижней части страницы кода, как так:
public class paymentMadeEventArgs: EventArgs
{
private bool paymentSuccess = true;
public bool PaymentSuccess
{
get { return paymentSuccess; }
set { paymentSuccess = value; }
}
}
Далее я скопированной пример кусок кода, который обрабатывает платеж, когда он вошел:
private void PaymentHasBeenMade(object sender, EventArgs e)
{
try
{
total = decimal.Parse(txtBoxAmountToPay.Text) - decimal.Parse(txtBoxAmountTendered.Text);
}
catch
{
MessageBox.Show("An Error has occured, please enter a valid amount.");
return;
}
if(total >0)
{
txtBoxAmountToPay.Text = String.Format("{0:c}", total);
}
else
{
MessageBox.Show("Please give " + String.Format("{0:c}", -total) + " in change.");
PaymentForm_PaymentMade(this, new paymentMadeEventArgs(){ PaymentSuccess = true });
}
}
ошибка является
System.NullReferenceException
, который, кажется, идет от этой линии здесь:
PaymentForm_PaymentMade(this, new paymentMadeEventArgs(){ PaymentSuccess = true });
Может кто-нибудь увидеть, что я делаю неправильно?
Заранее спасибо.
Вы уверены, что у вас есть подписчики на ваше мероприятие? –
'PaymentForm_PaymentMade'' 'null, если никто не подписал это событие. BTW: «похоже, идет из этой строки», это не лучший способ спросить о StackOverflow! В исключении всегда есть трассировка стека, которая сообщает _exactly_, где происходит ошибка. Включите эту трассировку стека в следующем вопросе. –
@ DanielAWhite - Насколько я обожаю этот обман, его немного суровый в этом случае, поскольку это немного частный случай NRE – Jamiec