c# - कोई रिटर्न प्रकार के साथ Func प्रतिनिधि




.net (5)

सभी Func प्रतिनिधि एक मूल्य वापस करते हैं। .NET प्रतिनिधियों का क्या उपयोग किया जा सकता है जो विधियों के साथ उपयोग किए जा सकते हैं?


... कोई तर्क नहीं लेता है और शून्य वापसी का प्रकार है?

मेरा मानना ​​है कि Action इसका समाधान है।


... कोई तर्क नहीं लेता है और शून्य वापसी का प्रकार है?

यदि आप System.Windows.Forms लिए लिख रहे हैं, तो आप इसका भी उपयोग कर सकते हैं:

public delegate void MethodInvoker()

कभी-कभी आप इवेंट हैंडलिंग के लिए एक प्रतिनिधि लिखना चाहेंगे, इस मामले में आप System.EvenHandler<T> का लाभ उठा सकते हैं जो EventArgs से प्राप्त होने वाले दूसरे पैरामीटर के अलावा टाइप object तर्क को स्पष्ट रूप से स्वीकार करता है। इवेंट हैंडलर void वापस आ जाएंगे

फ़ंक्शन बॉडी में एक-ऑफ कॉलबैक बनाने के लिए परीक्षण के दौरान मुझे व्यक्तिगत रूप से यह उपयोगी लगता है।


वापसी और गैर वापसी मूल्य subroutines का आह्वान करने के लिए एक बहुत ही आसान तरीका है। क्रमशः Func और कार्रवाई का उपयोग कर रहा है। ( https://msdn.microsoft.com/en-us/library/018hxwa8(v=vs.110).aspx भी https://msdn.microsoft.com/en-us/library/018hxwa8(v=vs.110).aspx )

इस उदाहरण को आजमाएं

using System;

public class Program
{
    private Func<string,string> FunctionPTR = null;  
    private Func<string,string, string> FunctionPTR1 = null;  
    private Action<object> ProcedurePTR = null; 



    private string Display(string message)  
    {  
        Console.WriteLine(message);  
        return null;  
    }  

    private string Display(string message1,string message2)  
    {  
        Console.WriteLine(message1);  
        Console.WriteLine(message2);  
        return null;  
    }  

    public void ObjectProcess(object param)
    {
        if (param == null)
        {
            throw new ArgumentNullException("Parameter is null or missing");
        }
        else 
        {
            Console.WriteLine("Object is valid");
        }
    }


    public void Main(string[] args)  
    {  
        FunctionPTR = Display;  
        FunctionPTR1= Display;  
        ProcedurePTR = ObjectProcess;
        FunctionPTR("Welcome to function pointer sample.");  
        FunctionPTR1("Welcome","This is function pointer sample");   
        ProcedurePTR(new object());
    }  
}

System.Func<T> प्रयास करें। System.Func<T> और System.Action





.net