एक डेलीगेट एक टाइप है जो एक विशेष पैरामीटर सूची और रिटर्न टाइप वाले मेथड्स के रेफरेंस को दर्शाता है। जब हम एक डेलीगेट को इंस्टेंशिएट करते हैं, तो हम इसके इंस्टेंस को किसी भी मेथड के साथ जोड़ सकते हैं जिसका एक कम्पेटिबल सिग्नेचर और रिटर्न टाइप हो। हम डेलीगेट इंस्टेंस के माध्यम से मेथड को इनवोक (या कॉल) कर सकते हैं।
Func Delegate
Func System नेमस्पेस में शामिल एक जेनेरिक डेलीगेट है। इसमें शून्य या अधिक इनपुट पैरामीटर्स और एक आउट पैरामीटर होता है। अंतिम पैरामीटर को आउट पैरामीटर माना जाता है। यह डेलीगेट एक ऐसे मेथड को इंगित कर सकता है जो 16 पैरामीटर्स तक लेता है और एक मान लौटाता है।
नीचे दो इनपुट और एक आउटपुट पैरामीटर के साथ Func डेलीगेट है।
Func Append;
उदाहरण
using System;
namespace DemoApplication
{
class Program
{
static void Main(string[] args)
{
Func func = Append;
string fullName = func("Michael", "Jackson");
Console.WriteLine(fullName);
Console.ReadLine();
}
static string Append(string firstName, string lastName)
{
return firstName + lastName;
}
}
}
आउटपुट
MichaelJackson
Action Delegate
Action System नेमस्पेस में परिभाषित एक डेलीगेट टाइप है। Action टाइप डेलीगेट Func डेलीगेट के समान है सिवाय इसके कि Action डेलीगेट कोई मान नहीं लौटाता। दूसरे शब्दों में, एक Action डेलीगेट का उपयोग उस मेथड के साथ किया जा सकता है जिसका रिटर्न टाइप void हो। इसमें न्यूनतम 1 और अधिकतम 16 इनपुट पैरामीटर्स हो सकते हैं और इसमें कोई आउटपुट पैरामीटर नहीं होता।
नीचे दो इनपुट पैरामीटर्स के साथ Action डेलीगेट है।
Action Print;
उदाहरण
using System;
namespace DemoApplication
{
class Program
{
static void Main(string[] args)
{
Action action = AppendPrint;
action("Michael", "Jackson");
Console.ReadLine();
}
static void AppendPrint(string firstName, string lastName)
{
string fullName = firstName + lastName;
Console.WriteLine($"{fullName}");
}
}
}
आउटपुट
MichaelJackson