सी # में एक प्रतिनिधि विधि का संदर्भ है। एक प्रतिनिधि एक संदर्भ प्रकार चर है जो एक विधि का संदर्भ रखता है। रनटाइम पर संदर्भ बदला जा सकता है।
प्रतिनिधि विशेष रूप से घटनाओं और कॉल-बैक विधियों को लागू करने के लिए उपयोग किए जाते हैं। सभी प्रतिनिधि परोक्ष रूप से System.Delegate वर्ग से प्राप्त होते हैं।
आइए देखें कि C# में प्रतिनिधियों को कैसे घोषित किया जाए।
delegate <return type> <delegate-name> <parameter list>
सी#में डेलिगेट्स के साथ काम करने का तरीका जानने के लिए आइए एक उदाहरण देखें।
उदाहरण
using System; using System.IO; namespace DelegateAppl { class PrintString { static FileStream fs; static StreamWriter sw; // delegate declaration public delegate void printString(string s); // this method prints to the console public static void WriteToScreen(string str) { Console.WriteLine("The String is: {0}", str); } // this method prints to a file 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(); } // this method takes the delegate as parameter and uses it to // call the methods as required public static void sendString(printString ps) { ps("Hello World"); } static void Main(string[] args) { printString ps1 = new printString(WriteToScreen); printString ps2 = new printString(WriteToFile); sendString(ps1); sendString(ps2); Console.ReadKey(); } } }
आउटपुट
The String is: Hello World