Có cách nào để đại biểu tham chiếu không? Tôi đang tìm kiếm một cách để làm điều này:Tham chiếu ủy quyền
delegate void Foo();
list<Foo> foos;
void test() {
list.Add(delegate() {
list.Remove(/* this delegate */);
});
}
Có cách nào để đại biểu tham chiếu không? Tôi đang tìm kiếm một cách để làm điều này:Tham chiếu ủy quyền
delegate void Foo();
list<Foo> foos;
void test() {
list.Add(delegate() {
list.Remove(/* this delegate */);
});
}
tôi không chắc chắn chính xác những gì bạn đang cố gắng để làm, nhưng nó có thể cho một đại biểu để tham khảo bản thân như thế này:
delegate void Foo();
List<Foo> foos = new List<Foo>();
void test() {
Foo del = null;
del = delegate { foos.Remove(del); };
foos.Add(del);
}
Một cách là dành cho các đại biểu để chấp nhận một đối số cho chính nó:
delegate void Foo(Foo self);
...
list.Add(delegate (Foo self) { list.Remove(self);});
...
foreach (Foo f in list) f(f);
Một cách khác sẽ được đóng trên một kh¶o biến để bản thân :
Foo foo;
foo = delegate() { list.Remove(foo);}
list.Add(foo);
Chính xác bạn đang cố gắng đạt được gì với cấu trúc như vậy? – Oded
Bạn không chắc chắn tôi hiểu câu hỏi của bạn? Bạn có muốn xóa đại biểu khỏi danh sách 'foos' của mình không? –
@Tony Con hổ: Có vẻ như vậy. – BoltClock