Lambda Expression ใน C# คืออะไร
นิพจน์แลมบ์ดาเป็นวิธีที่สั้นและกระชับในการกำหนดเมธอดแบบอินไลน์ โดยไม่จำเป็นต้องประกาศเมธอดแยกต่างหาก โดยพื้นฐานแล้วเป็นวิธีนิรนามที่สามารถกำหนดให้กับตัวแปรหรือใช้เป็นพารามิเตอร์ นิพจน์แลมบ์ดาใน C# จะแสดงด้วยโอเปอเรเตอร์ “=>” ซึ่งอ่านว่าโอเปอเรเตอร์ “goes to”:
ไวยากรณ์สำหรับนิพจน์แลมบ์ดาคือ:
( พารามิเตอร์ ) => การแสดงออก
โดยที่พารามิเตอร์คืออินพุตของฟังก์ชัน และนิพจน์คือเอาต์พุตของฟังก์ชัน ตัวอย่างต่อไปนี้สาธิตการใช้นิพจน์แลมบ์ดาเพื่อคำนวณกำลังสองของตัวเลข:
นานาชาติ สี่เหลี่ยม = ( x ) => x * x ;
ในตัวอย่างนี้ นิพจน์แลมบ์ดารับพารามิเตอร์อินพุต x และส่งกลับค่ากำลังสองของ x ผลลัพธ์ของนิพจน์แลมบ์ดาถูกกำหนดให้กับตัวแปรกำลังสอง และนี่คือโค้ดแบบเต็มสำหรับตัวอย่างนี้:
ใช้ระบบ ;
โปรแกรมคลาส {
คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) {
ฟังก์ชั่น < นานาชาติ , นานาชาติ > สี่เหลี่ยม = x => x * x ;
คอนโซล เขียนไลน์ ( สี่เหลี่ยม ( 6 ) ) ;
}
}
ในตัวอย่างนี้ เรากำหนดนิพจน์แลมบ์ดาที่รับพารามิเตอร์อินพุตจำนวนเต็ม x และส่งกลับกำลังสอง ประเภท Func
ฟังก์ชันนิรนาม C# คืออะไร
ฟังก์ชันนิรนามคือฟังก์ชันที่ไม่มีชื่อและเป็นการแสดงออกของแลมบ์ดาชนิดหนึ่งซึ่งถูกกำหนดและเรียกแบบอินไลน์ โดยไม่มีการประกาศเมธอดแยกต่างหาก ฟังก์ชันนิรนามใน C# แสดงด้วยคีย์เวิร์ด 'delegate' ซึ่งใช้ในการประกาศเมธอดใหม่ด้วยลายเซ็นเฉพาะ ไวยากรณ์สำหรับฟังก์ชันนิรนามคือ:
ผู้รับมอบอำนาจ ( พารามิเตอร์ ) { การแสดงออก }
โดยที่พารามิเตอร์คืออินพุตของฟังก์ชัน และนิพจน์คือเอาต์พุตของฟังก์ชัน ตัวอย่างต่อไปนี้สาธิตการใช้ฟังก์ชันนิรนามเพื่อคำนวณผลรวมของตัวเลขสองตัว:
ผู้รับมอบอำนาจ ( นานาชาติ ก , นานาชาติ ข ) { กลับ ก + ข ; }ในตัวอย่างนี้ ฟังก์ชัน Anonymous รับพารามิเตอร์อินพุตสองตัว x และ y และส่งคืนผลรวมของ f และ g:
ใช้ระบบ ;โปรแกรมคลาส {
คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) {
ฟังก์ชั่น < นานาชาติ , นานาชาติ , นานาชาติ > ผลรวม = ผู้รับมอบอำนาจ ( นานาชาติ ฉ , นานาชาติ กรัม ) { กลับ ฉ + กรัม ; } ;
คอนโซล เขียนไลน์ ( ผลรวม ( 2 , 3 ) ) ;
}
}
ในตัวอย่างนี้ เรากำหนดฟังก์ชันนิรนามที่รับพารามิเตอร์อินพุตจำนวนเต็มสองตัว x และ y และส่งกลับผลรวม เราประกาศตัวแปรรวมเป็นประเภท Func
บทสรุป
นิพจน์แลมบ์ดาและฟังก์ชันนิรนามเป็นแนวคิดที่มีประสิทธิภาพใน C# ซึ่งช่วยให้นักพัฒนาสามารถเขียนโค้ดที่กระชับ มีประสิทธิภาพ และอ่านง่ายได้ นิพจน์แลมบ์ดาใช้เพื่อกำหนดเมธอดแบบอินไลน์โดยไม่จำเป็นต้องประกาศเมธอดแยกต่างหาก ในขณะที่ฟังก์ชันนิรนามใช้เพื่อกำหนดและเรียกใช้ฟังก์ชันอินไลน์โดยไม่จำเป็นต้องประกาศเมธอดแยกต่างหาก (int x, int y) { return x + y; }. แนวคิดทั้งสองเป็นเครื่องมือที่จำเป็นสำหรับนักพัฒนา C# ที่ต้องการเขียนโค้ดที่มีประสิทธิภาพและบำรุงรักษาได้