लैम्बडा अभिव्यक्ति और .NET में एक अनुमान के बीच क्या अंतर है?लैम्बडा अभिव्यक्ति और .NET में एक अनुमान के बीच क्या अंतर है?
12
A
उत्तर
12
एक अनुमान प्रतिनिधि (फ़ंक्शन ऑब्जेक्ट) है जो एक बूलियन मान देता है। Lambda expressions किसी भी अज्ञात फ़ंक्शन को परिभाषित करने के लिए उपयोग किया जा सकता है, जिसमें भविष्यवाणी भी शामिल है, उदा।
Predicate<int> isEven2 = x => x % 2 == 0;
जो कार्यात्मक के बराबर है: एक लैम्ब्डा अभिव्यक्ति के रूप में एक विधेय व्यक्त करने के लिए
Func<int,bool> isEven = x => x % 2 == 0;
3
विधेय मापदंड का एक सेट को परिभाषित करता है, जबकि लैम्ब्डा अभिव्यक्ति एक गुमनाम समारोह है। आप लैम्ब्डा पूर्व का उपयोग कर सकते हैं। एक भविष्यवाणी के रूप में, लेकिन इसका मतलब यह नहीं है कि वे एक ही बात हैं।
+1
ठीक है, लेकिन वास्तव में क्या अंतर है? – Phil
एक विधेय * एक गुमनाम समारोह होने के लिए * नहीं हैं। –
उन तरीकों के लिए जो तर्क के रूप में भविष्यवाणी करते हैं (List.FindAll() उदाहरण के लिए), यह अच्छा होगा अगर संकलक ने वैध भविष्य के रूप में Func को पहचाना है, क्योंकि वे कार्यात्मक रूप से समकक्ष हैं। लेकिन आप इसे लैम्ब्डा के माध्यम से चला सकते हैं जैसे: var var = MyList.FindAll (i => isEven (i)); ' –
Graham