कोड के इस स्निपेट पर विचार करें:सी # में लैम्ब्डा क्यों बूलियन रिटर्न वैल्यू को अलग-अलग संभालने लगते हैं?
Func<int, bool> TestGreaterThanOne = delegate(int a) {
if (a > 1) return (true);
else return(false);
};
उपरोक्त कोड में, मैं "और वापसी (गलत)" बयान नहीं हटा सकते हैं - संकलक ने चेतावनी दी है कि नहीं सभी कोड पथ मान। लेकिन निम्नलिखित कोड है, जो एक लैम्ब्डा का उपयोग करता है ...
Func<int, bool> TestGreaterThanOne = a => a > 1;
मैं एक "और" बयान है की जरूरत नहीं है में - कोई संकलक चेतावनी है और तर्क के रूप में उम्मीद काम करता है।
मेरे लैम्ब्डा में "अन्य" कथन नहीं करने के लिए यहां क्या तंत्र चल रहा है?
बस स्पष्ट करने के लिए, लैम्ब्डा अभिव्यक्ति में विशेष रूप से बूल का कोई विशेष संचालन नहीं होता है। आप 'प्रतिनिधि' संस्करण को वैसे ही लिख सकते हैं जैसे रेमंड चेन नीचे करता है। यहां केवल लैम्ब्डा विशेषता है, इन-लाइन स्टेटमेंट के लिए 'रिटर्न' निर्दिष्ट करने की कमी है जहां रिटर्न वैल्यू अनुमानित किया जा सकता है (जैसा कि यह आपके उदाहरण में है)। –