5
대리인이 자신을 참조 할 수있는 방법이 있습니까? 내가 할 수있는 방법을 찾고 있어요 :대리자 참조 자체
delegate void Foo();
list<Foo> foos;
void test() {
list.Add(delegate() {
list.Remove(/* this delegate */);
});
}
대리인이 자신을 참조 할 수있는 방법이 있습니까? 내가 할 수있는 방법을 찾고 있어요 :대리자 참조 자체
delegate void Foo();
list<Foo> foos;
void test() {
list.Add(delegate() {
list.Remove(/* this delegate */);
});
}
나는 당신이하려는 정확히 잘 모르겠지만, 대리인은 다음과 같이 자신을 참조하는 것이 가능하다 :
delegate void Foo();
List<Foo> foos = new List<Foo>();
void test() {
Foo del = null;
del = delegate { foos.Remove(del); };
foos.Add(del);
}
한 가지 방법 그 자체에 대한 인수를 허용하도록 위임입니다 :
delegate void Foo(Foo self);
...
list.Add(delegate (Foo self) { list.Remove(self);});
...
foreach (Foo f in list) f(f);
또 다른 방법은 자체에 변수 다스 려를 통해 폐쇄하는 것 :
Foo foo;
foo = delegate() { list.Remove(foo);}
list.Add(foo);
정확히 그런 구조로 달성하려는 것은 무엇입니까? – Oded
귀하의 질문에 대한 이해가 확실하지 않습니까? 'foos'리스트에서 델리게이트를 제거하기를 원합니까? –
@Tony 타이거 : 그렇게 보입니다. – BoltClock