‫ไม่เป็นไร.
‫ทีนี้ คุณก็รู้แล้วว่า แนวคิดทั่วไปของผู้รับมอบสิทธิ์ ลองมาดูที่พวกเขาปฏิบัติกัน
‫และเพื่อให้เข้าใจมากขึ้น เราจะเริ่มโดยใช้ตัวแทนที่มีอยู่แล้วใน C-sharp
‫ก่อนอื่น เรามาเริ่มด้วยการกำหนดรายการสตริงอย่างง่ายที่เรียกว่าชื่อ
‫แล้วฉันจะใช้สิ่งนี้
‫สมมติว่าฉันต้องการลบชื่อออกจากมัน
‫ดังนั้นนี่คือวิธีการลบทั้งหมดและวิธีลบทั้งหมดช่วยให้ฉันสามารถลบองค์ประกอบทั้งหมดที่ตรงกับเงื่อนไขที่กำหนดโดยเพรดิเคตที่ระบุ
‫ดังนั้นที่นี่คุณจะเห็นคีย์เวิร์ดเพรดิเคตสีเขียว
‫นี่คือสิ่งที่เราสามารถผ่านได้โดยทั่วไป
‫ดังนั้นนี่คือโดยพื้นฐานที่นี่ฉันตัวแทนที่คาดว่าภาคแสดงเป็นเพียงชื่อของผู้รับมอบสิทธิ์ที่คาดหวัง
‫เมื่อคุณคลิกที่มัน คุณจะพบมันที่นี่
‫เพรดิเคตพูลการมอบสิทธิ์สาธารณะ
‫ดังนั้นที่นี่เราจะเห็นว่าภาคแสดงเป็นตัวแทนที่ได้รับวัตถุของ RT ซึ่งหมายถึงประเภทเฉพาะ
‫ในกรณีนี้ RT คือประเภทขององค์ประกอบรายการของเรา
‫ในกรณีของเรา มันคือสตริงและคืนค่าบูลีน
‫ดังนั้นเมื่อเราเรียกวิธีการลบทั้งหมด เพรดิเคตนี้จะถูกเรียกในทุกชื่อในรายการของเรา
‫หากเราอ่านเอกสารประกอบ เราจะเรียนรู้ว่าบูลที่ส่งคืนโดยเพรดิเคตนี้จะกำหนดว่าองค์ประกอบนี้จะถูกลบออกจากรายการหรือไม่
‫หากคืนค่าเป็น "จริง" องค์ประกอบนั้นจะถูกลบออก
‫และเป็นหน้าที่ของเราที่จะเขียนกฎเหล่านี้เพื่อกำหนดชะตากรรมของชื่อของเราในรายการของเรา
‫ดังนั้นจากชื่อเหล่านี้ที่เรามี ซึ่งหมายถึงโฟลเดอร์ if ของ Aidan และ Anatoly
‫ท้ายที่สุด คนที่เขียนโค้ดที่อยู่เบื้องหลังวิธีการลบทั้งหมดไม่สามารถอ่านใจของเราเพื่อกำหนดกฎที่เราต้องการได้
‫อย่างแน่นอน.
‫นั่นเป็นเหตุผลที่เราจะสร้างวิธีการของเราเองที่ตรงกับคำจำกัดความของผู้รับมอบสิทธิ์ภาคแสดง
‫และส่งผ่านไปยังวิธีการลบทั้งหมด
‫สมมติว่าเราต้องการลบชื่อทั้งหมดที่มีตัวอักษร I เพื่อให้เราสามารถเขียนวิธีการกรองแบบนี้ได้
‫ดังนั้นเราจึงสร้างตัวกรองพูลแบบสแตติกซึ่งจะรับสตริง
‫นี่คือวิธีการของเราที่เรียกว่า filter และเราส่งคืนว่าสตริงมีตัวอักษร I หรือไม่
‫และในที่นี้ เราใช้วิธีการบรรจุ ซึ่งจะคืนค่าบูลีนซึ่งจะคืนค่าจริงหรือเท็จ
‫ดังนั้นในที่นี้ มี C อยู่ โดยจะทำการตรวจสอบสตริงว่ามีสิ่งนั้นหรือไม่ จากนั้นจะส่งกลับบูลีน
‫สิ่งที่เราทำตรงนี้คือเราคืนค่าบูลีน
‫และมันใช้สตริงเป็นพารามิเตอร์
‫โดยพื้นฐานแล้วเราจะกลับมา
‫True หากสตริงมี I จากนั้นเมธอด Remove all จะรันเมธอดตัวกรองนี้กับองค์ประกอบทั้งหมดในรายการของเรา
‫ตอนนี้เรามาส่งวิธีการกรองของเราไปที่ Remove all method ที่เรายังทำไม่เสร็จและยังต้องการตัวแทนที่เราสามารถส่งต่อไปได้
‫และเพิ่ม a สำหรับแต่ละลูปก่อนและหลังการลบวิธีทั้งหมดเพื่อการสังเกต
‫ดังนั้นฉันจะเพิ่มโค้ดเล็กๆ นี้ในที่นี้ โดยที่ฉันแค่บอกว่านี่คือสิ่งที่เคยเกิดขึ้นมาก่อน
‫ดังนั้นเราจึงเขียนรายชื่อลงในคอนโซลพร้อมชื่อทั้งหมดที่อยู่ในรายการของเราที่นี่
‫จากนั้นเราลบทั้งหมดนั้น ทำตามตัวกรองบางตัว และเรียกใช้อีกครั้ง
‫ตอนนี้ตัวกรองที่เรากำลังส่งผ่าน คุณเห็นไหม เราไม่ได้ใช้วงเล็บที่นี่ แม้ว่าจะเป็นวิธีหนึ่งก็ตาม
‫โดยพื้นฐานแล้วเรากำลังส่งเมธอดเป็นพารามิเตอร์ที่นี่ และเรากำลังตรวจสอบว่าสตริงที่เราส่งมี
‫AI หรือไม่
‫ลองเรียกใช้และดูว่าชื่อใดบ้างที่มี I.
‫ดังนั้นเราจึงมีตัวแทนถ้าวอลเตอร์และอนาโตลี
‫และหลังจากนั้น เราก็ลบทั้งหมด ยกเว้นวอลเตอร์ เพราะวอลเตอร์เป็นเชือกที่ไม่มีตา
‫และนั่นคือวิธีที่เราใช้ตัวแทนที่มีอยู่ก่อนแล้ว
‫และตอนนี้เราได้ใช้วิธีที่ต้องการตัวแทนที่เราสามารถส่งต่อได้
‫โดยพื้นฐานแล้ว สิ่งที่เกิดขึ้นคือตั้งชื่อรายการสตริงที่นี่
‫ได้รับให้ลบทั้งหมดและตรวจสอบทีละรายการด้วยตัวกรองที่เราใช้ที่นี่
‫ดังนั้นมันจึงส่งผ่านทุกค่าเดียวจากชื่อหนึ่งไปยังวิธีการกรองของเรา วิ่งผ่านตัวกรองนั้นและส่งคืนว่าควรลบหรือไม่
‫ดังนั้นบูลีนนี้จะเป็นจริงถ้าฉันอยู่ในสตริงที่ส่งผ่าน
‫ดังนั้นสตริงที่เรากำลังดูอยู่ในรายชื่อของเรา และหากนี่คืนค่าเป็น true วิธีการกรองจะกลับมาเป็น
‫true ซึ่งจะนำไปสู่การลบการดูแลการลบชื่อออกจากรายชื่อทั้งหมด
‫เอาล่ะ นี่เป็นเพียงตัวอย่างหนึ่งของผู้รับมอบสิทธิ์
‫และคุณเห็นไหม เราไม่ได้ผ่านเฉพาะสิ่งที่เราต้องการมีในที่นี้
‫ดังนั้นเราจึงไม่ได้บอกว่าเราต้องการใช้สตริงใด ตัวอย่างเช่น โดยบอกว่าชื่อเริ่มต้นแล้วตามด้วยดัชนีหรืออะไรก็ตาม
‫เราไม่ต้องทำอย่างนั้นเพราะลบทั้งหมดคาดหวังผู้รับมอบสิทธิ์ที่นี่และนั่นคือสิ่งที่เราส่งต่อให้
‫หากยังสับสนอยู่บ้างก็ไม่เป็นไร
‫เราจะมีตัวอย่างเพิ่มเติมอีกสองสามตัวอย่างซึ่งจะช่วยให้คุณเข้าใจผู้รับมอบสิทธิ์ได้ดีขึ้นเล็กน้อยอย่างแน่นอน
‫เพราะเราจะสร้างมันขึ้นมาเองและมันจะสมเหตุสมผลมากขึ้น
‫แล้วพบกันใหม่ในวิดีโอหน้า