Nó không hoàn toàn rõ ràng với tôi những gì đang xảy ra trong tình huống này.Ai đó có thể giải thích những gì đang diễn ra đằng sau hậu trường?
Tôi mong đợi cả hai chức năng sẽ được kích hoạt.
Lớp EventHander lưu trữ danh sách các hàm để kích hoạt thành mảng - và mảng được sao chép sang mảng mới mỗi lần thêm/xóa - hoặc khi gán, toàn bộ nội dung được sao chép vào một "bộ sưu tập" mới - và không chỉ là một tham chiếu.
Ai đó làm ơn soi sáng cho tôi: D
Dưới đây là một kịch bản LINQPad nhỏ:
public class Moop
{
public EventHandler myEvent;
}
void Main()
{
var moo = new Moop();
moo.myEvent += (o, sender) => { "Added to Moop #1".Dump(); };
var moo2 = new Moop();
//Copy the reference, I assume?
moo2.myEvent = moo.myEvent;
moo2.myEvent += (o, sender) => { "Added to Moop #2".Dump(); };
//Fire the event on #1
moo.myEvent(null, null);
}
Kìa sức mạnh của quá tải của nhà điều hành và các tệ nạn mang lại. – CodingBarfield