Для чего нужны object sender и this - C#
Формулировка задачи:
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using static System.Console;
- class AccountEventArgs
- {
- // Соббщение
- public string message;
- // Сумма, на которую изменился счет
- public int sum;
- public AccountEventArgs(string _mes, int _sum)
- {
- message = _mes;
- sum = _sum;
- }
- }
- class Account
- {
- public delegate void AccountStateHandler(object sender, AccountEventArgs e);
- // Событие, возникающее при выводе денег
- public event AccountStateHandler Withdrowed;
- // Событие, возникающее при добавлении денег на счет
- public event AccountStateHandler Added;
- int _sum; // Переменная для хранения суммы
- int _percentage; // Переменная для хранения процента
- public Account (int sum, int percentage)
- {
- _sum = sum;
- _percentage = percentage;
- }
- public int CurrentSum
- {
- get { return _sum; }
- }
- public void Put(int sum)
- {
- _sum += sum;
- if (Added != null)
- Added(this, new AccountEventArgs("На счет поступило " + sum, sum));
- }
- public void Withdraw(int sum)
- {
- if (sum <= _sum)
- {
- _sum -= sum;
- if (Withdrowed != null)
- Withdrowed(this, new AccountEventArgs("Сумма " + sum + " снята со счета", sum));
- }
- else
- {
- if (Withdrowed != null)
- Withdrowed(this, new AccountEventArgs("Недостаточно денег на счете", sum));
- }
- }
- public int Percentage
- {
- get { return _percentage; }
- }
- }
- class Program
- {
- static void Main()
- {
- Account account = new Account(200, 6); // создаем банковский счет
- // Добавляем обраотчики события
- account.Added += Show_Message;
- account.Withdrowed += Show_Message;
- account.Withdraw(100);
- account.Withdrowed -= Show_Message; // Удаляем обработчик события
- account.Withdraw(50);
- account.Put(150);
- ReadLine();
- }
- private static void Show_Message(object sender, AccountEventArgs e)
- {
- WriteLine("Сумма транзакции: {0}", e.sum);
- WriteLine(e.message);
- }
- }
Листинг программы
- public delegate void AccountStateHandler(object sender, AccountEventArgs e);
- Added(this, new AccountEventArgs("На счет поступило " + sum, sum));
- private static void Show_Message(object sender, AccountEventArgs e)
- {
- WriteLine("Сумма транзакции: {0}", e.sum);
- WriteLine(e.message);
- }
Решение задачи: «Для чего нужны object sender и this»
textual
Листинг программы
- void Button_Click(object sender, EventArgs e)
- {
- var button = sender as Button;
- button.Background = Color.Green;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д