using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ramda5
{
internal class Program
{
static void Main(string[] args)
{
new App();
}
}
}
App
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ramda5
{
public class App
{
//생성자
public App()
{
Console.WriteLine("람다5 생성자 실행");
ToggleButton toggleButton = new ToggleButton();
toggleButton.Push((status) => { //람다에 넣을 매개변수 status
Console.WriteLine(status); //Status 열거형식 (맴버 : On, Off)
});
}
}
}
ToggleButton
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ramda5
{
public class ToggleButton
{
public enum Status
{
On,
Off
}
//맴버 변수
public Action<Status> action;
public Status status;
//생성자
public ToggleButton()
{
Console.WriteLine("토글 버튼 생성자 실행");
status = Status.Off; // 꺼진 상태로 시작
Console.WriteLine($"지금 불은 {status}");
}
public void Push(Action<Status> action)
{
if (this.status == Status.On)
{
action(Status.Off);
Console.WriteLine("버튼 온 -> 오프됨");
this.status = Status.Off;
}
else
{
action(Status.On);
Console.WriteLine("버튼 오프 -> 온됨");
this.status = Status.On;
}
}
}
}