using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study10
{
class App
{
//생성자
public App()
{
Console.WriteLine("App");
this.LoadFile(() => //문람다(익명 메서드).
{
Console.WriteLine("출력");
});
}
private void LoadFile(Action calback) //매개변수에 대리자 인스턴스
{
calback();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study10
{
class App
{
//생성자
public App()
{
Console.WriteLine("App");
this.LoadFile((str) => //람다문(익명메서드)
{
//출력
Console.WriteLine(str); //hello world!
});
}
private void LoadFile(Action<string> callback)
{
//파일을 로드한다(읽는다
//(파일에 있는 문자열 값을 읽어 온다)
string str = "hello world!";
callback(str);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study10
{
class App
{
//생성자
public App()
{
Console.WriteLine("App");
this.LoadScene(() =>
{
Console.WriteLine("씬로드 완료");
});
}
private void LoadScene(Action callback)
{
callback();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study10
{
class App
{
//생성자
public App()
{
Console.WriteLine("App");
Hero hero = new Hero();
hero.Move(() =>
{
Console.WriteLine("이동 완료");
});
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study10
{
class Hero
{
//생성자
public Hero()
{
}
public void Move(Action callback)
{
callback();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study10
{
class App
{
//생성자
public App()
{
Console.WriteLine("App");
Hero hero = new Hero();
hero.onMoveComplete = () =>
{
Console.WriteLine("이동 완료");
};
hero.Move(); //이동완료되면 대리자를 호출
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study10
{
class Hero
{
public Action onMoveComplete;
//생성자
public Hero()
{
}
public void Move()
{
Console.WriteLine("이동중...");
onMoveComplete();
}
}
}
'C# > 수업내용' 카테고리의 다른 글
[ C# 10일차 ] LINQ와 익명형식 (0) | 2023.01.12 |
---|---|
[ C# 10일차 ] 개체 이니셜라이져 (0) | 2023.01.12 |
[ C# 9일차 ] Func, Action 대리자 (0) | 2023.01.11 |
[ C# 9일차 ] 익명메소드와 람다1 (0) | 2023.01.11 |
[ C# 9일차 ] 대리자 delegate 연습2 (0) | 2023.01.11 |