c# - प्रतिनिधियों: कार्य Func भविष्यवाणी




delegates (5)

क्या कोई इन 3 सबसे महत्वपूर्ण प्रतिनिधियों के बारे में एक अच्छी व्याख्या (उम्मीदों के साथ) प्रदान कर सकता है:

  • विधेय
  • कार्य
  • समारोह

सी # डेवलपर के बारे में अन्य प्रतिनिधियों को क्या पता होना चाहिए?

आप उत्पादन कोड में कितनी बार उनका उपयोग करते हैं?


MethodInvoker वह है जो WinForms डेवलपर उपयोग कर सकते हैं; यह कोई तर्क स्वीकार नहीं करता है और कोई परिणाम नहीं देता है। यह एक्शन की भविष्यवाणी करता है, और यूआई थ्रेड पर आविष्कार करते समय भी अक्सर इसका उपयोग किया जाता है क्योंकि BeginInvoke () et al untyped Delegate को स्वीकार करता है; हालांकि एक्शन भी वही करेगा।

myForm.BeginInvoke((MethodInvoker)delegate
{
  MessageBox.Show("Hello, world...");
});

मुझे थ्रेडस्टार्ट और पैरामीटरेटेड थ्रेडस्टार्ट के बारे में भी पता होगा; फिर से ज्यादातर लोग इन दिनों एक एक्शन बदल देंगे।


अन्य ने पहले से ही विशिष्ट प्रतिनिधियों के सही उपयोगों का उल्लेख किया है, लेकिन मैं कुछ ऐसा जोड़ना चाहता हूं जो उनके उत्तरों को पूरा करेगा। नाम Func, एक्शन, भविष्यवाणी गणितीय पृष्ठभूमि है। चीजों को सरल रखने के लिए मैं इस तरह के गणितीय कार्य की अनौपचारिक परिभाषा दूंगा:

एक समारोह सेट के बीच एक रिश्ता है। हम एक सेट के सदस्य लेते हैं और इसे इनपुट के रूप में उपयोग करते हैं और फ़ंक्शन इस इनपुट को दूसरे सेट के केवल एक सदस्य को मानचित्र करता है। दूसरे शब्दों में, कुछ इनपुट प्राप्त करता है और आउटपुट उत्पन्न करता है।

दोबारा, अनौपचारिक रूप से, गणितीय भविष्यवाणी एक ऐसा बयान है जो इसके चर के आधार पर सत्य या गलत हो सकता है। जैसा कि अन्य ने एक समारोह का उल्लेख किया है जो बूलियन लौटाता है।

और आखिरकार, एक्शन एक शून्य कार्य है (या अधिक गणितीय रूप से सही नाम -विद विधि या प्रक्रिया)


भविष्यवाणी, फनक और एक्शन .NET के अंतर्निहित प्रतिनिधि उदाहरण हैं। इनमें से प्रत्येक प्रतिनिधि उदाहरण विशिष्ट हस्ताक्षर के साथ उपयोगकर्ता विधियों को संदर्भित या इंगित कर सकता है।

कार्य प्रतिनिधि - कार्य प्रतिनिधि उदाहरण उन विधियों को इंगित कर सकते हैं जो तर्क लेते हैं और शून्य लौटाते हैं।

Func प्रतिनिधि - Func प्रतिनिधि उदाहरण विधि (ओं) को इंगित कर सकता है जो तर्कों की चर संख्या लेते हैं और कुछ प्रकार लौटाते हैं।

भविष्यवाणी - भविष्यवाणियां func प्रतिनिधि उदाहरणों के समान होती हैं और वे उन तरीकों को इंगित कर सकती हैं जो तर्कों की परिवर्तनीय संख्या लेती हैं और एक बूल प्रकार लौटाती हैं।


लैम्ब्डा के साथ एक्शन और फनक:

person p = new person();
Action<int, int> mydel = p.add;       /*(int a, int b) => { Console.WriteLine(a + b); };*/
Func<string, string> mydel1 = p.conc; /*(string s) => { return "hello" + s; };*/
mydel(2, 3);
string s1=  mydel1(" Akhil");
Console.WriteLine(s1);
Console.ReadLine();

  • Predicate : अनिवार्य रूप से Func<T, bool> ; सवाल पूछता है "क्या निर्दिष्ट तर्क प्रतिनिधि द्वारा प्रतिनिधित्व की गई शर्त को पूरा करता है?" List.FindAll जैसी चीजों में प्रयुक्त होता है।

  • Action : तर्क दिए गए एक क्रिया करें। बहुत सामान्य उद्देश्य। LINQ में बहुत अधिक उपयोग नहीं किया जाता है क्योंकि यह मूल रूप से साइड इफेक्ट्स का तात्पर्य है।

  • Func : LINQ में बड़े पैमाने पर प्रयुक्त होता है, आमतौर पर तर्क को बदलने के लिए, उदाहरण के लिए एक जटिल संरचना को एक संपत्ति में पेश करके।

अन्य महत्वपूर्ण प्रतिनिधि:

  • EventHandler / EventHandler<T> : WinForms पर सभी का उपयोग किया जाता है

  • Comparison<T> : IComparer<T> तरह IComparer<T> लेकिन प्रतिनिधि रूप में।







delegates