‫ไม่เป็นไร.
‫แล้วตัวแทนคืออะไร?
‫ในแง่ง่ายๆ ผู้รับมอบสิทธิ์คือประเภทที่สามารถอ้างอิงถึงวิธีการได้
‫และเมื่อคุณเรียกผู้รับมอบสิทธิ์ วิธีการที่อ้างอิงจะถูกเรียก
‫ลองนึกภาพว่าเรากำลังพัฒนาไลบรารี UI ที่นักพัฒนาคนอื่นๆ สามารถใช้สร้างแอปบนอุปกรณ์เคลื่อนที่ได้ และหนึ่งในองค์ประกอบ
‫UI ที่นักพัฒนารายอื่นสามารถใช้ได้คือปุ่ม
‫หากเราดูโค้ดหลังคลาสของปุ่มที่ใช้สร้างปุ่มสีเขียวบนหน้าจอ ปุ่มแบบนี้จะมีคุณสมบัติดังต่อไปนี้
‫สตริงที่เรียกว่า text พร้อมค่าที่ส่ง ซึ่งเป็นสีที่เรียกว่า back color ซึ่งมีลักษณะเป็นสีเขียวและของ
‫หลักสูตรที่สองเรียกว่าขนาด W และขนาด H สำหรับความกว้างและความสูงของปุ่ม
‫ตอนนี้ สิ่งที่ขาดหายไปคือวิธีการที่มีรหัสที่ต้องดำเนินการเมื่อคลิกปุ่ม
‫ตอนนี้เรามีปัญหาที่นี่
‫เราในฐานะนักพัฒนาซอฟต์แวร์ที่สร้างระบบ UI นี้ ไม่สามารถบอกได้ว่านักพัฒนารายอื่นที่ใช้ระบบ UI ของเราต้องการให้ปุ่มนี้ทำอะไรเมื่อมีการคลิก
‫นั่นเป็นเหตุผลที่เราต้องจัดเตรียมเหตุการณ์เมื่อคลิกเป็นผู้รับมอบสิทธิ์ ไม่ใช่วิธีปกติ
‫และเนื่องจากผู้รับมอบสิทธิ์เป็นตัวแปรที่สามารถจัดเก็บการอ้างอิงถึงวิธีการ ดังที่เราได้ยินมาก่อนหน้านี้
‫นักพัฒนารายอื่นสามารถเขียนการนำไปใช้งานของตนเองภายในวิธีการที่มีตรรกะที่พวกเขาต้องการดำเนินการเมื่อคลิกและกำหนดให้กับปุ่มต่างๆ
‫เมื่อคลิก เหตุการณ์เฉือนของตัวแทน
‫เราให้ตัวแทนคลิกของเราเองสามารถกำหนดได้เช่นนี้
‫ทีนี้มาทำลายมันทีละนิด
‫เราจะเริ่มต้นด้วยการเขียนการเข้าถึงที่ระบุให้กับคีย์เวิร์ดส่วนตัวนี้ ตามด้วยคีย์เวิร์ดของผู้รับมอบสิทธิ์
‫ซึ่งบอกคอมไพเลอร์ว่าเรากำลังกำหนดประเภทใหม่
‫และสุดท้าย เราต้องระบุประเภทของวิธีการที่ผู้รับมอบสิทธิ์ของเราสามารถจัดเก็บได้
‫และตามประเภท ฉันหมายถึงประเภทการส่งคืน และพารามิเตอร์บน Click Delegate คือชื่อของผู้รับมอบสิทธิ์ที่เราเพิ่งกำหนด
‫ขั้นตอนต่อไปคือการสร้างตัวแปรประเภทผู้รับมอบสิทธิ์ใหม่
‫ดังนั้นเราจึงกำหนดมันเหมือนกับที่เรากำหนดตัวแปรใดๆ ใน C-sharp
‫โดยเริ่มจากสาธารณะ จากนั้นจึงกำหนดประเภทของตัวแปรที่เรากำลังสร้าง ซึ่งอยู่บนการคลิกผู้รับมอบสิทธิ์
‫และสุดท้ายคือชื่อตัวแปรที่คลิก
‫อีกครั้ง เรากำหนดตัวแปรสาธารณะของประเภทบน Click Delegate และตั้งชื่อมันบน Click
‫ตัวแปรนี้สามารถเก็บหรือจัดเก็บการอ้างอิงถึงวิธีการใดๆ ได้ตราบเท่าที่มีโมฆะเป็นประเภทส่งคืนและไม่ใช้พารามิเตอร์
‫มิฉะนั้น เราจะได้รับข้อผิดพลาดคล้ายกับเมื่อเราพยายามเก็บทุ่นไว้ในตัวแปร in
‫เราจะใช้ผู้รับมอบสิทธิ์ใหม่นี้ได้อย่างไร
‫สมมติว่าเราลากปุ่มที่ปล่อยลงในผืนผ้าใบของเราใน ID ที่เราใช้ในการพัฒนาแอปบนอุปกรณ์เคลื่อนที่นี้โดยใช้ระบบ
‫UI ของเรา ซึ่งส่งผลให้เกิดการสร้างวัตถุปุ่ม
‫สมมติว่าชื่อปุ่มนี้เป็นปุ่มส่ง
‫ก่อนอื่นให้เพิ่มตรรกะที่เราต้องการดำเนินการเมื่อคลิกปุ่ม
‫ในกรณีของเรา เราต้องการเชื่อมต่อกับเครือข่าย ส่งข้อความ จากนั้นแสดงข้อความไปยังผู้ใช้
‫ตอนนี้เรามีวิธีปกติที่เรียกว่า Send Button Click ที่ยังไม่ได้เชื่อมต่อกับปุ่มแต่อย่างใด
‫ในการแก้ไขปัญหานี้ เราต้องกำหนดวิธีการของเราให้กับตัวแปร on click ของประเภทบน Click Delegate
‫โปรดทราบว่าเราเขียนชื่อเมธอดของเราโดยไม่มีวงเล็บ เนื่องจากเราไม่ได้เรียกมัน เราแค่เก็บข้อมูลอ้างอิงไว้ในผู้รับมอบสิทธิ์ที่ถูกต้อง
‫ภายใต้ประทุน หากวางเมาส์ไว้เหนือปุ่มและเมาส์ถูกคลิก ระบบ UI ของเราจะเรียกผู้รับมอบสิทธิ์เมื่อคลิกของปุ่มส่ง
‫ซึ่งในทางกลับกันจะเรียกวิธีการใดๆ ที่ได้รับมอบหมาย
‫ในกรณีนี้จะเรียกการคลิกปุ่มส่งและกล่องโต้ตอบข้อความที่ส่งจะปรากฏขึ้น
‫วิธีนี้ใครก็ตามที่ใช้ระบบ UI ของเราสามารถสร้างวิธีการของตนเอง จากนั้นกำหนดวิธีการให้กับผู้รับมอบสิทธิ์ของเรา
‫และเราสามารถโทรหาพวกเขาได้ทุกเมื่อที่เงื่อนไขถูกต้อง
‫เราไม่ จำกัด เฉพาะกิจกรรมการคลิก
‫เรายังสามารถสร้างผู้รับมอบสิทธิ์เมื่อแอปพลิเคชันเริ่มต้นหรือปิดได้ เป็นต้น
‫นี่เป็นตัวอย่างที่เป็นนามธรรมมาก แต่นี่เป็นกรณีการใช้งานจริงของผู้ได้รับมอบหมายโดยทั่วไป
‫ต่อไปเราจะเรียนรู้วิธีใช้ตัวแทนที่มีอยู่แล้วใน C-sharp
‫และหลังจากนั้น เราจะเริ่มสร้างผู้รับมอบสิทธิ์ของเราเอง คล้ายกับที่เราทำในตัวอย่างนี้
‫แล้วพบกันใหม่ในวิดีโอหน้า