https://www.youtube.com/watch?v=C8xtvboY1gI&list=PLO56HZSjrPTB4NxAsEP8HRk6YKBDLbp7m&index=64
using System;
using System.Collections.Generic;
using System.Text;
namespace Car
{
// 이벤트 게시자(Publisher)
class Car
{
private int _fuelGuage;
public int FulGuage
{
get { return _fuelGuage; }
set { _fuelGuage = value; }
}
public Car()
{
FulGuage = 25; // 25%
}
public void Go()
{
Console.WriteLine("운전");
FulGuage -= 5; // 5% 감소
}
public delegate void FuelEmputyNotification();
public event FuelEmputyNotification FuelEmptyReached; // 연료부족 이벤트
public void OnFuelEmptyReached()
{
if(FuelEmptyReached != null)
{
// FuelEmptyReached();
FuelEmptyReached?.Invoke();
}
}
}
}
using System;
using static System.Console;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace testProject
{
// 이벤트 구독자(Subscriber)
class Program
{
static void Main(string[] args)
{
Car.Car car = new Car.Car();
car.FuelEmptyReached += Car_FuelEmptyReached; // += tab
car.FuelEmptyReached -= Car_FuelEmptyReached; // 등록 취소
// car.FuelEmptyReached += delegate () => { }; // 익명 함수
car.FuelEmptyReached += () => { // 람다 식
Console.ForegroundColor = ConsoleColor.Red;
Console.BackgroundColor = ConsoleColor.Black;
WriteLine("연료부족");
Console.ResetColor();
};
car.Go();
car.OnFuelEmptyReached();
}
// 이벤트 핸들러(Evnet Handler)
private static void Car_FuelEmptyReached() =>
WriteLine("연료 부족");
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Car
{
// 이벤트 게시자(Publisher)
class Car
{
private int _fuelGuage;
public int FulGuage
{
get { return _fuelGuage; }
set
{
_fuelGuage = value;
OnFuelEmptyReached();
}
}
public Car()
{
_fuelGuage = 25; // 25%
}
public void Go()
{
Console.WriteLine("운전");
FulGuage -= 5; // 5% 감소
}
public delegate void FuelEmputyNotification();
public event FuelEmputyNotification FuelEmptyReached; // 연료부족 이벤트
public void OnFuelEmptyReached()
{
Console.WriteLine($"연료 상태 : {_fuelGuage}%");
if(_fuelGuage < 20)
{
if (FuelEmptyReached != null)
{
// FuelEmptyReached();
FuelEmptyReached?.Invoke();
}
}
}
}
}
using System;
using static System.Console;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace testProject
{
// 이벤트 구독자(Subscriber)
class Program
{
static void Main(string[] args)
{
Car.Car car = new Car.Car();
car.FuelEmptyReached += Car_FuelEmptyReached; // += tab
car.FuelEmptyReached -= Car_FuelEmptyReached; // 등록 취소
// car.FuelEmptyReached += delegate () => { }; // 익명 함수
car.FuelEmptyReached += () => { // 람다 식
Console.ForegroundColor = ConsoleColor.Red;
Console.BackgroundColor = ConsoleColor.Black;
WriteLine("연료부족");
Console.ResetColor();
};
car.Go();
// car.OnFuelEmptyReached();
car.Go();
}
// 이벤트 핸들러(Evnet Handler)
private static void Car_FuelEmptyReached() =>
WriteLine("연료 부족");
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Car
{
// 이벤트 게시자(Publisher)
class Car
{
private int _fuelGuage;
public int FulGuage
{
get { return _fuelGuage; }
set
{
_fuelGuage = value;
OnFuelEmptyReached();
}
}
public Car()
{
_fuelGuage = 25; // 25%
}
public void Go()
{
Console.WriteLine("운전");
FulGuage -= 5; // 5% 감소
}
// 대리자
// public delegate void FuelEmputyNotification();
// public event FuelEmputyNotification FuelEmptyReached; // 연료부족 이벤트
public event Action FuelEmptyReached; // 위 대리자와 동일한 기능
public void OnFuelEmptyReached()
{
Console.WriteLine($"연료 상태 : {_fuelGuage}%");
if(_fuelGuage < 20)
{
if (FuelEmptyReached != null)
{
// FuelEmptyReached();
FuelEmptyReached?.Invoke();
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Car
{
// 이벤트 게시자(Publisher)
class Car
{
private int _fuelGuage;
public int FulGuage
{
get { return _fuelGuage; }
set
{
_fuelGuage = value;
OnFuelEmptyReached();
}
}
public Car()
{
_fuelGuage = 25; // 25%
}
public void Go()
{
Console.WriteLine("운전");
FulGuage -= 5; // 5% 감소
}
// 대리자
// public delegate void FuelEmputyNotification();
// public event FuelEmputyNotification FuelEmptyReached; // 연료부족 이벤트
public event Action FuelEmptyReached; // 위 대리자와 동일한 기능
public void OnFuelEmptyReached()
{
Console.WriteLine($"연료 상태 : {_fuelGuage}%");
if(_fuelGuage < 20)
{
if (FuelEmptyReached != null)
{
// FuelEmptyReached();
FuelEmptyReached?.Invoke();
}
}
}
}
}