Как вызывать событие при вызове метода?

Как при вызове метода Put задействовать событие AccountPutNotificationEvent, выполнить его и отключить?

    public class Account
    {
        public delegate void AccountNotificationDelegate(object sender, AccountEventArgs e);

        public event AccountNotificationDelegate AccountPutNotificationEvent;
        public event AccountNotificationDelegate AccountWithdrawNotificationEvent;

        public decimal Sum { get; private set; } = 0;
        public void Put(int sum)
        {
            if (sum >= 0)
                Sum += sum;
            else
            {
                try
                {
                    AccountPutNotificationEvent(this, new AccountEventArgs("Невозможно пополнить баланс на сумму менее, чем 0.01 у.е."));
                }
                catch (NullReferenceException)
                {
                    Console.WriteLine("Обработчик не был зарегестрирован.");
                }
            }        
        }
        public void Withdraw(int sum)
        {
            if (Sum >= sum)
                Sum -= sum;
            else
            {
                try
                {
                    AccountWithdrawNotificationEvent(this, new AccountEventArgs($"На балансе недостаточно средств для снятия {sum} у.е. " +
                                                $"пополните счёт на {sum - Sum} у.е. для совершения этой операции."));
                }
                catch (NullReferenceException)
                {
                    Console.WriteLine("Обработчик не был зарегестрирован.");
                }
            }  
        }
    }
    class Program
    {
        static void Main()
        {
            Account account = new Account();
            
            account.AccountPutNotificationEvent += AccountNotificationHandler;         
            account.Put(-100); // Вот здесь хотелось бы, чтобы метод Put автоматически регал событие и удалялся
        }

        public static void AccountNotificationHandler(object sender, AccountEventArgs e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

Ответы (0 шт):