लैम्ब्डा एक्सप्रेशन एक अनाम विधि का प्रतिनिधित्व करने का एक बेहतर तरीका है। अनाम विधियाँ और लैम्ब्डा अभिव्यक्ति दोनों आपको विधि कार्यान्वयन इनलाइन को परिभाषित करने की अनुमति देते हैं, हालाँकि, एक अनाम विधि के लिए स्पष्ट रूप से आपको एक विधि के लिए पैरामीटर प्रकार और रिटर्न प्रकार को परिभाषित करने की आवश्यकता होती है।
एक्सप्रेशन लैम्ब्डा जिसकी बॉडी के रूप में एक एक्सप्रेशन है:(input−parameters) => एक्सप्रेशन
स्टेटमेंट लैम्ब्डा जिसके बॉडी के रूप में स्टेटमेंट ब्लॉक है:(इनपुट-पैरामीटर) => {
किसी भी लैम्ब्डा एक्सप्रेशन को डेलिगेट टाइप में बदला जा सकता है। डेलिगेट टाइप जिसमें लैम्ब्डा एक्सप्रेशन को कन्वर्ट किया जा सकता है, उसके मापदंडों और रिटर्न वैल्यू के प्रकार से परिभाषित होता है। यदि लैम्ब्डा एक्सप्रेशन कोई मान नहीं लौटाता है, तो इसे एक्शन डेलिगेट प्रकारों में से एक में परिवर्तित किया जा सकता है; अन्यथा, इसे Func प्रतिनिधि प्रकारों में से एक में परिवर्तित किया जा सकता है।
static void Main(string[] args){ Func<int, int> square = x => x * x; Console.WriteLine(square(5)); Console.ReadLine(); }
=> ऑपरेटर के दाईं ओर एक अभिव्यक्ति के साथ एक लैम्ब्डा अभिव्यक्ति को अभिव्यक्ति लैम्ब्डा कहा जाता है। एक अभिव्यक्ति लैम्ब्डा अभिव्यक्ति का परिणाम देता है और निम्नलिखित मूल रूप लेता है
एक्शन लाइन =() => कंसोल.राइटलाइन ();
फंक<डबल, डबल> क्यूब =x => x * x * x;
Func
Func
C# 7.0, C# भाषा टुपल्स के लिए अंतर्निहित समर्थन प्रदान करती है। आप लैम्ब्डा एक्सप्रेशन के तर्क के रूप में टपल प्रदान कर सकते हैं, और आपका लैम्ब्डा एक्सप्रेशन भी टपल लौटा सकता है।
लैम्ब्डा एक्सप्रेशन के भीतर पेश किए गए वेरिएबल्स संलग्न विधि में दिखाई नहीं दे रहे हैं।
लैम्ब्डा एक्सप्रेशन सीधे संलग्न विधि से एक इन, रेफरी या आउट पैरामीटर को कैप्चर नहीं कर सकता है।
लैम्ब्डा एक्सप्रेशन में रिटर्न स्टेटमेंट संलग्न विधि को वापस करने का कारण नहीं बनता है।
लैम्ब्डा एक्सप्रेशन में गोटो, ब्रेक या स्टेटमेंट जारी नहीं हो सकता है यदि उस जंप स्टेटमेंट का लक्ष्य लैम्ब्डा एक्सप्रेशन ब्लॉक के बाहर है। यदि लक्ष्य ब्लॉक के अंदर है तो लैम्ब्डा एक्सप्रेशन ब्लॉक के बाहर जंप स्टेटमेंट रखना भी एक त्रुटि है।