Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में डेलीगेट्स (Delegates): घोषणा, उपयोग, और उदाहरण


डेलीगेट (Delegate) एक टाइप-सेफ फंक्शन पॉइंटर है जो मेथड का रेफरेंस रखता है। रनटाइम पर मेथड बदला जा सकता है। इवेंट्स और कॉलबैक्स का आधार।

घोषणा

delegate   ;

पूर्ण उदाहरण

using System;
using System.IO;

namespace DelegateAppl
{
    class PrintString
    {
        static FileStream fs;
        static StreamWriter sw;
        
        // डेलीगेट घोषणा
        public delegate void PrintStringDelegate(string s);
        
        // कंसोल पर प्रिंट
        public static void WriteToScreen(string str)
        {
            Console.WriteLine("स्ट्रिंग है: {0}", str);
        }
        
        // फाइल में लिखें
        public static void WriteToFile(string s)
        {
            fs = new FileStream("c:\\message.txt", FileMode.Append, FileAccess.Write);
            sw = new StreamWriter(fs);
            sw.WriteLine(s);
            sw.Flush();
            sw.Close();
            fs.Close();
        }
        
        // डेलीगेट को पैरामीटर के रूप में लेता है
        public static void SendString(PrintStringDelegate ps)
        {
            ps("Hello World");
        }
        
        static void Main(string[] args)
        {
            PrintStringDelegate ps1 = new PrintStringDelegate(WriteToScreen);
            PrintStringDelegate ps2 = new PrintStringDelegate(WriteToFile);
            
            SendString(ps1);
            SendString(ps2);
            Console.ReadKey();
        }
    }
}

आउटपुट

स्ट्रिंग है: Hello World

(और फाइल में "Hello World" लिखा जाता है)

मुख्य बिंदु

  • सभी डेलीगेट्स System.Delegate से अंतर्निहित रूप से डेराइव्ड।
  • मल्टीकास्ट डेलीगेट: del += Method1; del += Method2; del() दोनों कॉल करता है।
  • Func<T, TResult>, Action<T>, Predicate<T> बिल्ट-इन जेनेरिक डेलीगेट्स।
  • लैम्ब्डा एक्सप्रेशन: Func add = (x, y) => x + y;
  • कोवेरिएंस/कंट्रावेरिएंस: Func<out TResult>, Action<in T>।
  1. नॉन-एडमिन यूजर्स को विशेषाधिकार देने के लिए पावरशेल जस्ट इनफ एडमिनिस्ट्रेशन (JEA) का उपयोग करना नॉन-एडमिन यूजर्स को विशेषाधिकार देने के लिए पावरशेल जस्ट इनफ एडमिनिस्ट्रेशन (JEA) का उपयोग करना

    जस्ट इनफ एडमिनिस्ट्रेशन (JEA) फीचर पावरशेल संस्करण 5.0 से उपलब्ध है और आपको उन सभी चीजों के लिए प्रशासनिक विशेषाधिकारों को डेलिगेट करने की अनुमति देता है जिन्हें आप पावरशेल से प्रबंधित कर सकते हैं। पावरशेल JEA का मुख्य उद्देश्य विशेषाधिकारों को सीमित करना है। JEA आपको नॉन-एडमिन यूजर्स को सर्वर या सर

  1. iPhone में दो व्यू कंट्रोलर के बीच संचार के लिए सिंपल डेलीगेट सेटअप iPhone में दो व्यू कंट्रोलर के बीच संचार के लिए सिंपल डेलीगेट सेटअप

    इस लेख में, आप डेलीगेट के बारे में सीखेंगे और डेलीगेट बनाएंगे। सबसे पहले, डेलीगेट क्या है? डेलीगेट एक सरल शब्द है जो ऑब्जेक्ट के बीच संचार को संदर्भित करता है। यह ऑब्जेक्ट को जोड़ने और उनके बीच संचार का एक सरल तरीका है। डेलीगेट कैसे काम करता है? एक डेलीगेट प्रोटोकॉल की मदद से बनाया जाता है। एक प्रो

  1. Gmail में डेलीगेट्स कैसे जोड़ें और प्रबंधित करें: चरण-दर-चरण गाइड Gmail में डेलीगेट्स कैसे जोड़ें और प्रबंधित करें: चरण-दर-चरण गाइड

    डेलीगेट्स क्या हैं? Gmail अपने उपयोगकर्ताओं को अपने अकाउंट में डेलीगेट्स जोड़ने की अनुमति देता है। डेलीगेट्स के पास अकाउंट मालिक की ओर से मेल पढ़ने, भेजने, उत्तर देने और हटाने की क्षमता होती है। आपको एक डेलीगेट जोड़कर किसी व्यक्ति को एक्सेस देना होगा। डेलीगेट्स क्या कर सकते हैं? आपको भेजे गए ईमेल