Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ความแตกต่างระหว่างผู้ได้รับมอบหมายและเหตุการณ์ใน C #


ในโพสต์นี้ เราจะเข้าใจความแตกต่างระหว่างผู้รับมอบสิทธิ์และเหตุการณ์ใน C#

ผู้รับมอบสิทธิ์

  • สามารถประกาศได้โดยใช้คีย์เวิร์ด 'delegate'

  • มันคือตัวชี้ฟังก์ชัน

  • มีการอ้างอิงถึงวิธีการอย่างน้อยหนึ่งวิธีระหว่างรันไทม์

  • เป็นคีย์เวิร์ดอิสระ

  • ไม่ขึ้นอยู่กับเหตุการณ์

  • ประกอบด้วยเมธอด Combine() และ Remove() ที่ช่วยเพิ่มเมธอดในรายการการเรียกใช้

  • สามารถส่งผ่านเป็นพารามิเตอร์ไปยังวิธีการได้

  • ตัวดำเนินการ '=' สามารถใช้กำหนดวิธีเดียวได้

  • ตัวดำเนินการ '+=' สามารถใช้กำหนดวิธีการได้หลายวิธีให้กับผู้รับมอบสิทธิ์

กิจกรรม

  • สามารถประกาศได้โดยใช้คีย์เวิร์ด "เหตุการณ์"

  • สามารถกำหนดเป็นกลไกการแจ้งเตือนที่ขึ้นอยู่กับผู้รับมอบสิทธิ์

  • ขึ้นอยู่กับผู้รับมอบสิทธิ์

  • ไม่สามารถสร้างขึ้นได้หากไม่มีผู้รับมอบสิทธิ์

  • สามารถเข้าใจได้ว่าเป็น wrapper รอบ ๆ อินสแตนซ์ของผู้รับมอบสิทธิ์

  • ซึ่งจะช่วยป้องกันไม่ให้ผู้ใช้ของผู้รับมอบสิทธิ์รีเซ็ตผู้รับมอบสิทธิ์และรายการคำขอ

  • อนุญาตให้เพิ่มหรือลบเป้าหมายจากรายการคำขอเท่านั้น

  • คลาส "EventInfo" ตรวจสอบเหตุการณ์และช่วยผูกตัวจัดการเหตุการณ์

  • แฮนเดิลเหล่านี้รวมถึงเมธอดต่างๆ เช่น AddEventHandler() และ RemoveEventHandler() ซึ่งช่วยเพิ่มและลบเมธอดในรายการการเรียกใช้ตามลำดับ

  • เหตุการณ์สามารถเกิดขึ้นได้ แต่ไม่สามารถส่งผ่านเป็นพารามิเตอร์ไปยังเมธอดได้

  • ตัวดำเนินการ '=' ใช้กับกิจกรรมไม่ได้

  • ตัวดำเนินการ '+=' และ '-=' สามารถใช้กับเหตุการณ์ที่เพิ่มหรือลบตัวจัดการเหตุการณ์ตามลำดับ

  • เมธอดเหล่านี้จะเรียกเมธอดภายใน เช่น AddEventHandler และRemoveEventHandler