Для чего нужны 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д