निर्माता जो घोषणा आप कॉल एक और निर्माता के रूप में तैनात सच देता है, तो यह समझाने के लिए पासिंग, हम पहले देखना चाहिए अन्य रचनाकार के हस्ताक्षर पर:
public DelegateCommand(Action<T> executeMethod, Func<T, bool> canExecuteMethod)
तो दूसरा पैरामीटर Func<T, bool>
है। इसका मतलब है कि यह एक ऐसा फ़ंक्शन है जो T
प्रकार का पैरामीटर लेता है और एक बूलियन देता है।
अब
अगर आप लैम्ब्डा कि प्रयोग किया जाता है पर नज़र डालें:
(o) => true
सामान्य रूप में lambdas, वाक्य रचना (parameter-list) => lambda-body
है इसलिए इस मामले में, लैम्ब्डा की एकल पैरामीटर एक चर o
है (प्रकार अनुमानित है जो T
होने के लिए) और फ़ंक्शन निरंतर परिणाम true
देता है।
इसका उद्देश्य मूल रूप से एक आदेश बनाना है जो हमेशा निष्पादन योग्य होता है।
बेशक, लैम्ब्डा बहुत अधिक जटिल लग सकता है, इसलिए प्रतिनिधिमंडल का उपयोग करते समय, आप अधिक जटिल और गैर-निरंतर अभिव्यक्तियों का उपयोग करने की संभावना रखते हैं। उदाहरण के लिए:
new DelegateCommand(DoSomething, o => o.SomeProperty >= 0 && o.SomeProperty < 10 && o.SomeBoolProperty)
यह एक विधेय है कि इस्तेमाल नहीं करने के लिए सिर्फ एक इनपुट पैरामीटर है - इस मामले में विधेय हमेशा सच रिटर्न - मुझे लगता है कि संदेह है एक डिफ़ॉल्ट कोई विधेय में पारित हो जाता है – BrokenGlass
इस [ट्यूटोरियल]। (http://msdn.microsoft.com/en-us/library/vstudio/bb882516.aspx) अज्ञात विधियों और लैम्ब्डा को समझने में आपकी सहायता करेगा। बीटीडब्ल्यू यह सिर्फ एक इनपुट पैरामीटर है। –