दिलचस्प पोस्ट
अनुमति अस्वीकार (Publickey) जब एसएसएच प्रवेश अमेज़ॅन EC2 आवृत्ति के लिए सीआरयूडी ब्लूप्रिंट सेल्स.जेएस में ओवरराइडिंग दृश्य स्टूडियो में कमांड लाइन पैरामीटर के साथ डीबग करना जावास्क्रिप्ट में केस असंवेदनशील सॉर्ट करने के लिए कैसे करें? फाइल या असेंबली को लोड नहीं किया जा सका 'न्यूटॉन्सफ्ट। जेसन, संस्करण = 4.5.0.0, संस्कृति = तटस्थ, पब्लिककेय टोकन = 30 एडी 4 एफ 6 बी 2 ए 6 ए' लोचदार खोज, स्फिंक्स, ल्यूसीन, सोलर, ज़ापियन कौन सा उपयोग के लिए फिट बैठता है? शैल द्वारा उपयोग किए गए फ़ाइल आइकन प्राप्त करें एक वस्तु के क्षेत्रों से अजगर शब्दकोश जावास्क्रिप्ट में हजारों विभाजक के रूप में संख्या को कैसे मुद्रित किया जाए सीएसएस वर्ग के नाम / चयनकर्ताओं में कौन सा पात्र मान्य हैं? फेसबुक ग्राफ़ एपी – एक व्यवस्थापक के रूप में फैन पेज पर पोस्टिंग नेविगेटर के लिए संभावित मूल्यों की सूची आज के रूप में क्या है? जावा ऑफर ऑपरेटर ओवरलोडिंग क्यों नहीं करता है? Level.FINE लॉगिंग संदेश क्यों नहीं दिखा रहे हैं? वसंत के माध्यम से शोकपूर्ण प्रमाणीकरण

सी = अर्थ में '=>' सिंटैक्स क्या करता है?

मैं इस फोरम में कुछ प्रश्नों पर इस सिंटैक्स पर आया हूं, लेकिन Google और किसी भी अन्य खोजशब्द को खोज में अक्षरों और संख्याओं को छोड़कर किसी भी चीज़ को ब्लॉक करना पड़ता है, इसलिए "=>" को खोजना असंभव है।

तो क्या कोई मुझे बता सकता है कि यह क्या है और इसका इस्तेमाल कैसे किया जाता है?

वेब के समाधान से एकत्रित समाधान "सी = अर्थ में '=>' सिंटैक्स क्या करता है?"

यह लैम्ब्डा ऑपरेटर है

सी # 3 से सी # 5 तक, यह केवल लैम्ब्डा भाव के लिए इस्तेमाल किया गया था। ये मूल रूप से सी # 2 में शुरू की गई अज्ञात तरीकों का एक छोटा रूप है, लेकिन अभिव्यक्ति पेड़ों में भी परिवर्तित किया जा सकता है।

उदहारण के लिए:

Func<Person, string> nameProjection = p => p.Name; 

के बराबर है:

 Func<Person, string> nameProjection = delegate (Person p) { return p.Name; }; 

दोनों ही मामलों में आप उस व्यक्ति के नाम (एक स्ट्रिंग के रूप में) को लौटाने, एक Person पैरामीटर के साथ एक प्रतिनिधि बना रहे हैं।

सी # 6 में अभिव्यक्ति-शरीर वाले सदस्यों के लिए एक ही वाक्यविन्यास प्रयोग किया जाता है, जैसे

 // Expression-bodied property public int IsValid => name != null && id != -1; // Expression-bodied method public int GetHashCode() => id.GetHashCode(); 

यह भी देखें:

  • अनाम तरीकों (सी # 2.0) और लैम्ब्डा भाव (सी # 3.0) के बीच अंतर क्या है
  • लैम्ब्डा क्या है?
  • सी # लेम्बडा अभिव्यक्ति, मुझे इसका उपयोग क्यों करना चाहिए?

(और वास्तव में बहुत से समान प्रश्न – लैम्ब्डा और लैम्ब्डा-अभिव्यक्ति टैग की कोशिश करें।)

इसका अर्थ है भयानकता उदाहरण के लिए

 x => x + 1 

एक विधि का प्रतिनिधित्व करता है जो x को एक पैरामीटर के रूप में लेता है और इसके उत्तराधिकारी देता है।

 button.Click += new EventHandler((sender, e) => methodInfo.Invoke(null, new object[] { sender, e })); 

एक विधि है जो एक MethodInfo धारण के द्वारा एक बटन को एक घटना हेन्डलर प्रदान करता है

यहां एमएसडीएन से एक सरल उदाहरण है

 delegate int del(int i); del myDelegate = x => x * x; int j = myDelegate(5); //j = 25 

=> इनपुट पैरामीटर से पहले कुछ भी, और अभिव्यक्ति के बाद कुछ भी है आपके पास एकाधिक इनपुट पैरामीटर हो सकते हैं लैम्ब्डा मुख्यतः लिनक के साथ उपयोग किया जाता है

यह फ़ंक्शन नोटेशन का एक और रूप है। निम्नलिखित लगभग समतुल्य हैं:

 // explicit function int MyFunc(int pParam) { return pParam; } // delegate function Func<int, int> MyFunc = delegate(int pParam) { return pParam; }; // lambda expression Func<int, int> MyFunc = x => x; 

लैम्ब्डा अभिव्यक्ति के बारे में सोचते हुए सोचो, "कुछ दिया, कुछ वापस लौटें" ऊपर दिए गए उदाहरण में, फ़ंक्शन x => x कहते हैं, "दिया x, वापसी x" (यद्यपि लैम्ब्डा भाव को कुछ वापस करने की ज़रूरत नहीं है, इस स्थिति में आप उन्हें "दिया एक्स, एक्स के साथ कुछ करें" के रूप में पढ़ सकते हैं।)

इस तरह अनाम विधि का उपयोग करने के बजाय:

 somevar.Find(delegate(int n) { if(n < 10) return n; }); 

आप बस इसे इस तरह लिखें:

 somevar.Find(n => n < 10); 

यह वापसी मूल्य के आधार पर डेटा प्रकार लेगा।

यह मूल रूप से "पैरामीटर" की तरह, "में जाता है" का अर्थ है

 MyObjectReference => MyObjectReference.DoSomething() 

आम तौर पर आप उन कार्यों का उपयोग पैरामीटर, या LINQ स्टेटमेंट्स में विधियों में करने के लिए करते हैं

 MyCollection.Where(myobj => myobj.Age>10) 

उदाहरण के लिए।

यह लैम्ब्डा अभिव्यक्ति की वाक्य रचना का हिस्सा है। लैम्ब्डा अभिव्यक्ति अनिवार्य रूप से एक प्रतिनिधि या एक अज्ञात विधि का छोटा रूप है उदाहरण के लिए, मान लें कि मेरे पास अक्षर की एक सरणी है जो वर्णमाला के अक्षर से मेल खाते हैं। मैं उस सरणी के सदस्यों को चुन सकता हूं जो निम्नलिखित LINQ अभिव्यक्ति के साथ "ई" से अधिक मूल्य रखता है:

var someLetters = alphabet.Where (एल => एल> "ई");

"=>" की बाईं ओर लैम्ब्डा अभिव्यक्ति का हिस्सा परीक्षण के लिए चर नाम (वर्णमाला के व्यक्तिगत सदस्यों पर सेट है) को पहचानता है और "=>" के दाईं ओर लैम्ब्डा अभिव्यक्ति का हिस्सा पहचानता है प्रसंस्करण। इस मामले में प्रोसेसिंग एक बूलियन मान का उत्पादन करती है, जहां तर्क यह निर्धारित करने के लिए उपयोग करता है कि वर्णमाला के प्रत्येक सदस्य कुछ लेटरर्स सरणी के माध्यम से पारित किया गया है या नहीं।