public class Test<T>
{
public static void A(Window wa, Window wb)
{
wa.Closed += (s, e) => wb.Close();
}
}
이 컴파일 취득이 간단한 클래스 (내가 디 컴파일 리플렉터를 사용하고 있습니다) 코드를 구독 base
? <>c__DisplayClass1
이 사용되지 않는 이유는 무엇입니까? 반사경 버그입니까?
편집 : 사실 , 반사판 최적화는 디 컴파일 코드가 의미가 최적화를하지 않도록,이 경우 매우 잘 워킹되지 않은 것 같아 :
반사경을 시도하는 출력을 "최적화"입니다public class Test<T>
{
public Test()
{
base..ctor();
return;
}
public static void A(Window wa, Window wb)
{
<>c__DisplayClass1<T> CS$<>8__locals2;
CS$<>8__locals2 = new <>c__DisplayClass1<T>();
CS$<>8__locals2.wb = wb;
wa.Closed += new EventHandler(CS$<>8__locals2.<A>b__0);
return;
}
[CompilerGenerated]
private sealed class <>c__DisplayClass1
{
// Fields
public Window wb;
public <>c__DisplayClass1()
{
base..ctor();
return;
}
public void <A>b__0(object s, EventArgs e)
{
this.wb.Close();
return;
}
}
}
이것은 좋은 질문입니다. 나는 왜 당신이'wb'를 통해 클로저를 포착하기 위해 도우미 클래스를 필요로하는지 이해하지만 헬퍼를 사용하지 않는'A'에서 실제로 생성 된 코드를 이해하지 못합니다. –