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

C# में Func डेलीगेट और Action डेलीगेट में क्या अंतर है?

एक डेलीगेट एक टाइप है जो एक विशेष पैरामीटर सूची और रिटर्न टाइप वाले मेथड्स के रेफरेंस को दर्शाता है। जब हम एक डेलीगेट को इंस्टेंशिएट करते हैं, तो हम इसके इंस्टेंस को किसी भी मेथड के साथ जोड़ सकते हैं जिसका एक कम्पेटिबल सिग्नेचर और रिटर्न टाइप हो। हम डेलीगेट इंस्टेंस के माध्यम से मेथड को इनवोक (या कॉल) कर सकते हैं।

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
  1. - C# में इंटरफ़ेस और क्लास में क्या अंतर है?

    एक इंटरफ़ेस फील्ड्स या मेथड कार्यान्वयन के बिना एक क्लास है। यह उन मेथड्स को लागू नहीं कर सकता जो यह परिभाषित करता है।एक क्लास आमतौर पर इंटरफ़ेस में परिभाषित मेथड्स को लागू करती है।इंटरफ़ेसइंटरफ़ेस प्रॉपर्टीज, मेथड्स, और इवेंट्स को परिभाषित करते हैं, जो इंटरफ़ेस के सदस्य हैं। इंटरफ़ेस में केवल सदस्य

  1. - C# में String और string में क्या अंतर है?

    String का मतलब System.String है जबकि string C# में System.String के लिए एक एलियास (alias) है।उदाहरण के लिए:string str = Welcome!;यह आवश्यक नहीं है, लेकिन आमतौर पर String का उपयोग तब किया जाता है जब आप क्लासेस के साथ काम करते हैं।string str = String.Format(Welcome! {0}!, user);चूंकि string System.Str

  1. - Python में String और Byte String में क्या Difference है?

    String vs Byte String एक String Characters का Sequence होता है; ये एक Abstract Concept हैं और इन्हें Directly Disk पर Store नहीं किया जा सकता। एक Byte String Bytes का Sequence होती है - ऐसी चीजें जो Disk पर Store की जा सकती हैं। इनके बीच Mapping को Encoding कहते हैं - इनमें से काफी सारे हैं (और अनं