0
다음 프로그램이 경우 이벤트가 다르게 작동하는 이유는 무엇입니까?
static IEnumerable<Action> Create()
{
foreach (var i in Enumerable.Range(0, 2))
{
yield return() => { Console.Write(i); };
}
}
static void Main(string[] args)
{
foreach (var func in Create())
{
func();
}
Console.ReadLine();
}
으로 출력한다
이 프로그램01
static event Action SomethingHappened;
static void Register()
{
foreach (var i in Enumerable.Range(0, 2))
{
SomethingHappened +=() => { Console.Write(i); };
}
}
static void Main(string[] args)
{
Register();
SomethingHappened();
Console.ReadLine();
}
출력
왜 그렇습니까? 프로그램 2 출력을 만드는 방법 01
?