Lambda Expression และ Anonymous Function ใน C# คืออะไร

Lambda Expression Laea Anonymous Function Ni C Khux Xari



นิพจน์แลมบ์ดาและฟังก์ชันนิรนามเป็นสองแนวคิดที่มีประสิทธิภาพใน C# ซึ่งช่วยให้นักพัฒนาสามารถเขียนโค้ดที่กระชับ มีประสิทธิภาพ และอ่านง่ายได้ คุณลักษณะเหล่านี้ช่วยให้นักพัฒนาสามารถเขียนฟังก์ชันแบบอินไลน์โดยไม่จำเป็นต้องประกาศวิธีการแยกต่างหาก บทความนี้จะกล่าวถึงการแสดงออกของแลมบ์ดาและฟังก์ชันนิรนามใน C# และให้ตัวอย่างแยกกันสำหรับแต่ละรายการ

Lambda Expression ใน C# คืออะไร

นิพจน์แลมบ์ดาเป็นวิธีที่สั้นและกระชับในการกำหนดเมธอดแบบอินไลน์ โดยไม่จำเป็นต้องประกาศเมธอดแยกต่างหาก โดยพื้นฐานแล้วเป็นวิธีนิรนามที่สามารถกำหนดให้กับตัวแปรหรือใช้เป็นพารามิเตอร์ นิพจน์แลมบ์ดาใน C# จะแสดงด้วยโอเปอเรเตอร์ “=>” ซึ่งอ่านว่าโอเปอเรเตอร์ “goes to”:

ไวยากรณ์สำหรับนิพจน์แลมบ์ดาคือ:







( พารามิเตอร์ ) => การแสดงออก

โดยที่พารามิเตอร์คืออินพุตของฟังก์ชัน และนิพจน์คือเอาต์พุตของฟังก์ชัน ตัวอย่างต่อไปนี้สาธิตการใช้นิพจน์แลมบ์ดาเพื่อคำนวณกำลังสองของตัวเลข:



นานาชาติ สี่เหลี่ยม = ( x ) => x * x ;

ในตัวอย่างนี้ นิพจน์แลมบ์ดารับพารามิเตอร์อินพุต x และส่งกลับค่ากำลังสองของ x ผลลัพธ์ของนิพจน์แลมบ์ดาถูกกำหนดให้กับตัวแปรกำลังสอง และนี่คือโค้ดแบบเต็มสำหรับตัวอย่างนี้:



ใช้ระบบ ;

โปรแกรมคลาส {

คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) {

ฟังก์ชั่น < นานาชาติ , นานาชาติ > สี่เหลี่ยม = x => x * x ;

คอนโซล เขียนไลน์ ( สี่เหลี่ยม ( 6 ) ) ;

}

}

ในตัวอย่างนี้ เรากำหนดนิพจน์แลมบ์ดาที่รับพารามิเตอร์อินพุตจำนวนเต็ม x และส่งกลับกำลังสอง ประเภท Func กำหนดว่านิพจน์แลมบ์ดารับพารามิเตอร์อินพุตจำนวนเต็มและส่งกลับค่าจำนวนเต็ม เรากำหนดนิพจน์แลมบ์ดานี้ให้กับตัวแปรกำลังสอง จากนั้นเราเรียกมันด้วยค่าอินพุตเป็น 6 และเอาต์พุตจะเป็น 36





ฟังก์ชันนิรนาม C# คืออะไร

ฟังก์ชันนิรนามคือฟังก์ชันที่ไม่มีชื่อและเป็นการแสดงออกของแลมบ์ดาชนิดหนึ่งซึ่งถูกกำหนดและเรียกแบบอินไลน์ โดยไม่มีการประกาศเมธอดแยกต่างหาก ฟังก์ชันนิรนามใน C# แสดงด้วยคีย์เวิร์ด 'delegate' ซึ่งใช้ในการประกาศเมธอดใหม่ด้วยลายเซ็นเฉพาะ ไวยากรณ์สำหรับฟังก์ชันนิรนามคือ:



ผู้รับมอบอำนาจ ( พารามิเตอร์ ) { การแสดงออก }

โดยที่พารามิเตอร์คืออินพุตของฟังก์ชัน และนิพจน์คือเอาต์พุตของฟังก์ชัน ตัวอย่างต่อไปนี้สาธิตการใช้ฟังก์ชันนิรนามเพื่อคำนวณผลรวมของตัวเลขสองตัว:

ผู้รับมอบอำนาจ ( นานาชาติ , นานาชาติ ) { กลับ + ; }

ในตัวอย่างนี้ ฟังก์ชัน Anonymous รับพารามิเตอร์อินพุตสองตัว x และ y และส่งคืนผลรวมของ f และ g:

ใช้ระบบ ;

โปรแกรมคลาส {

คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) {

ฟังก์ชั่น < นานาชาติ , นานาชาติ , นานาชาติ > ผลรวม = ผู้รับมอบอำนาจ ( นานาชาติ , นานาชาติ กรัม ) { กลับ + กรัม ; } ;

คอนโซล เขียนไลน์ ( ผลรวม ( 2 , 3 ) ) ;

}

}

ในตัวอย่างนี้ เรากำหนดฟังก์ชันนิรนามที่รับพารามิเตอร์อินพุตจำนวนเต็มสองตัว x และ y และส่งกลับผลรวม เราประกาศตัวแปรรวมเป็นประเภท Func ซึ่งระบุว่าฟังก์ชันรับพารามิเตอร์อินพุตจำนวนเต็มสองตัวและส่งกลับค่าจำนวนเต็ม เราใช้คีย์เวิร์ด delegate เพื่อกำหนดฟังก์ชัน จากนั้นเราเรียกฟังก์ชันนั้นด้วยค่าอินพุตเป็น 2 และ 3 ผลลัพธ์จะเป็น 5

บทสรุป

นิพจน์แลมบ์ดาและฟังก์ชันนิรนามเป็นแนวคิดที่มีประสิทธิภาพใน C# ซึ่งช่วยให้นักพัฒนาสามารถเขียนโค้ดที่กระชับ มีประสิทธิภาพ และอ่านง่ายได้ นิพจน์แลมบ์ดาใช้เพื่อกำหนดเมธอดแบบอินไลน์โดยไม่จำเป็นต้องประกาศเมธอดแยกต่างหาก ในขณะที่ฟังก์ชันนิรนามใช้เพื่อกำหนดและเรียกใช้ฟังก์ชันอินไลน์โดยไม่จำเป็นต้องประกาศเมธอดแยกต่างหาก (int x, int y) { return x + y; }. แนวคิดทั้งสองเป็นเครื่องมือที่จำเป็นสำหรับนักพัฒนา C# ที่ต้องการเขียนโค้ดที่มีประสิทธิภาพและบำรุงรักษาได้