‫ไม่เป็นไร.
‫ดังนั้นเราจึงเห็นในการบรรยายครั้งก่อนว่าเมธอดนิรนามสามารถช่วยให้เราเขียนบล็อคโค้ดในแนวที่จำเป็นต้องมีผู้รับมอบสิทธิ์ได้อย่างไร
‫ในซีชาร์ป 3 มีการแนะนำนิพจน์แลมบ์ดา 0 รายการ
‫มีรูปแบบการใช้งานที่เรียบง่ายและกะทัดรัดมากขึ้นในการเขียนวิธีการที่ไม่ระบุชื่อ
‫คำว่าแลมบ์ดานั้นนำมาจากแคลคูลัสแลมบ์ดาซึ่งทุกอย่างแสดงออกมาในรูปของฟังก์ชัน
‫เราจะใช้นิพจน์แลมบ์ดาเพื่อสร้างฟังก์ชันและวิธีการที่ไม่ระบุชื่อ
‫ในการสร้างนิพจน์แลมบ์ดา เราต้องใช้โอเปอเรเตอร์ Lambda Declaration ซึ่งมีค่ามากกว่าเมื่ออ่านเมื่อเข้าสู่หรือไปที่เพื่อแยกรายการพารามิเตอร์แลมบ์ดาออกจากเนื้อหา
‫Lambda Expression สามารถมีรูปแบบใดรูปแบบหนึ่งจากสองรูปแบบต่อไปนี้
‫ก่อนอื่นเลย นิพจน์ lambda ที่มีนิพจน์หนึ่งบรรทัดของโค้ดเป็นเนื้อหา
‫ดังนั้นพารามิเตอร์อินพุตจึงมีค่ามากกว่านิพจน์
‫แล้วเราก็มีคำสั่ง แลมบ์ดาที่มีคำสั่ง
‫BLOCK เรียกใช้โค้ดมากกว่าหนึ่งบรรทัดเป็นเนื้อหา
‫และที่นี่เราแค่ใช้พารามิเตอร์อินพุตเท่ากับ มากกว่า และจากนั้นลำดับของคำสั่งภายในวงเล็บปีกกา
‫ทีนี้ลองมาดูในทางปฏิบัติกัน
‫กลับไปที่ตัวอย่างก่อนหน้านี้ ให้เพิ่มตัวกรองสองสามตัวโดยใช้นิพจน์แลมบ์ดา
‫ที่นี่เรามีตัวกรองที่เราแสดงให้ทุกคนเห็นตอนนี้ ไปต่อและสร้างคำค้นหา และฉันจะเรียกสิ่งนี้ว่าโอเคไหม
‫ฉันจะโทรหาการค้นหาจดหมายเพิ่มเติม จากนั้นฉันจะเรียกวิธี Display People
‫อีกครั้ง
‫และฉันจะบอกว่าฉันจะแสดงทุกอย่างที่ H อยู่เหนือ 20 ด้วยคำค้นหา
‫นั่นหมายความว่าเรากำลังมองหาใครก็ตามที่อายุมากกว่า 20 ปีแต่ก็มีเช่น A ในชื่อของพวกเขา
‫ไปข้างหน้าและทำโดยเพิ่มคำค้นหานี้ในคำสั่งนี้ที่นี่ด้วย
‫นี่เป็นเพียงชื่อเรื่องเท่านั้น
‫ตกลง?
‫นี่คือชื่อวิธีการแสดงบุคคลของเรา สตริงที่นี่ และตอนนี้เป็นรายชื่อบุคคลที่เราต้องการจะทำซ้ำหรือตรวจสอบเพื่อกรอง
‫ทีนี้ มาดูรายชื่อบุคคลที่เราสร้างไว้ก่อนหน้านี้กัน ซึ่งก็คือรายชื่อบนนี้ รายชื่อบุคคล
‫และเรามีทั้งหมดสี่คนในนั้น
‫ตอนนี้เรามีคนแล้ว ลองใช้นิพจน์แลมบ์ดาของเรากัน
‫ดังนั้นฉันจะส่งผ่านพารามิเตอร์ P แล้วฉันจะเรียกใช้นิพจน์ต่อไปนี้ในนั้น
‫แน่นอนว่าฉันต้องจบประโยคนี้ด้วยเครื่องหมายอัศเจรีย์ แต่ตอนนี้ เรามารันโค้ดกันก่อนดีกว่า
‫ฉันกำลังใช้นิพจน์แลมบ์ดาที่นี่ แทนเมธอดนิรนาม แทนที่จะส่งเมธอดที่นี่ ซึ่งบอกว่านี่คือพารามิเตอร์ทั้งหมด
‫มีค่ามากกว่าเดิม และนี่เป็นเพียงพารามิเตอร์เดียว ซึ่งเป็นเหตุผลว่าทำไมจึงไม่ใช้วงเล็บเหลี่ยม
‫มิฉะนั้นฉันจะต้องล้อมรอบมันด้วยวงเล็บที่นี่เช่นนั้น
‫จากนั้นฉันก็สามารถดำเนินการตามที่ต้องการได้
‫และสิ่งที่ฉันจะดำเนินการ?
‫ฉันจะตรวจสอบว่าชื่อมีคำหลักบางคำซึ่งเป็นคำค้นหาของเราหรือไม่
‫ฉันจะบอกว่าถ้าชื่อมีคำสำคัญที่ใช้ค้นหา และอายุมากกว่า 20 ปี ดังนั้น h ของบุคคล
‫บุคคลที่เรากำลังตรวจสอบอยู่ ถ้ามากกว่า 20 ก็ให้คืนค่าเป็น true
‫เพราะถ้าเรามองว่าเป็นของเรา
‫กรองผู้ได้รับมอบหมายที่เรากำลังเปลี่ยนตอนนี้ หรือตำแหน่งที่เรากำลังผ่าน
‫นิพจน์แลมบ์ดาของเราต้องการบูลีน
‫ดังที่เราเห็นในที่นี้เมื่อเราตั้งค่าครั้งแรก
‫ไม่เป็นไร.
‫และตอนนี้เราต้องเพิ่มบล็อกอื่นที่นี่ด้วย
‫มิฉะนั้นเราจะคืนค่าเท็จ
‫ดังนั้นคืนค่าเท็จและนั่นคือมัน
‫ดังนั้นตอนนี้จึงไม่มีปัญหาอีกต่อไป
‫โดยพื้นฐานแล้วเราใช้แลมบ์ดาของเราที่นี่ และนี่คือคำสั่งแลมบ์ดาที่เราใช้อยู่
‫ผมขอเพิ่มคำอธิบายเล็กน้อยที่นี่
‫คำชี้แจง lambda เรามีคำค้นหาของเรา
‫เราตรวจสอบว่าบุคคลนั้นมีคำค้นหาและ H.
‫ไม่เป็นไร.
‫และตอนนี้เรามาดูสิ่งเดียวกัน
‫ดังนั้นที่นิพจน์แลมบ์ดา
‫แต่ตอนนี้ ให้ดูที่นิพจน์ lambda ไม่ใช่คำสั่ง lambda
‫สิ่งที่ดีคือมันจะสั้นกว่านี้ในแง่ของโค้ด
‫เอาเป็นว่าเราขอโชว์คนอายุ 25 หน่อยละกัน
‫ไม่เป็นไร.
‫ลองทำกันดูนะ
‫เราจะกรองรายชื่อบุคคล
‫และที่นี่ฉันจะใช้นิพจน์แลมบ์ดา
‫ผมจะบอกว่า p เท่ากับ มากกว่า โดยที่ p h เท่ากับ 25 และนั่นก็เท่านั้น
‫นั่นเป็นวิธีที่ง่าย
‫นี่คือนิพจน์แลมบ์ดาของเรา
‫และความสวยงามก็คือมันเป็นโค้ดเพียงบรรทัดเดียว ซึ่งก็คือพลังของนิพจน์ lambdas
‫ดังนั้น แทนที่จะต้องสร้างเมธอดพิเศษ แทนที่จะต้องสร้างเมธอดนิรนาม เราแค่ใช้แลมบ์ดานิพจน์ที่มีโค้ดเพียงบรรทัดเดียว
‫และโดยพื้นฐานแล้วเราก็บรรลุผลเช่นเดียวกับที่เราทำได้ด้วยตัวกรองของเรา
‫ใช่ไหม
‫นั่นคือความงดงามของการแสดงออกของแลมบ์ดาส
‫และตอนนี้หากเราดำเนินการนี้ เราจะได้ผลลัพธ์ที่นี่ว่า Anatoliy อายุ 25 ปี และ Aiden
‫ก็ถูกสร้างขึ้นในปี 20 ด้วยคำค้นหา
‫เอ๊ะ?
‫นี่ก็คือสองตัวบนนี้
‫แล้วใครคือ 25 กันแน่?
‫นั่นเป็นเพียงอนาโตลีเท่านั้น
‫อ่อ ประมาณนั้น
‫ดังนั้นฉันหวังว่าคุณจะสนุกกับส่วนนี้ของซีรีส์
‫ในวิดีโอหน้า เราจะดูเหตุการณ์และผู้รับมอบสิทธิ์แบบหลายผู้รับ
‫แล้วเจอกันนะ