沒有返回類型的Func委託

全部Func委託都返回一個值。 什麼是能夠與返回void的方法一塊兒使用的.NET委託? 函數


#1樓

有時您會想要爲事件處理編寫委託,在這種狀況下,您能夠利用System.EvenHandler<T> ,除了應該從EventArgs派生的第二個參數以外, System.EvenHandler<T>隱式接受object類型的參數。 EventHandlers將返回void 測試

我我的發現這在測試過程當中有用,能夠在函數體中建立一次性回調。 spa


#2樓

一種很是簡單的方法來調用return和non return value子例程。 分別使用FuncAction(另請參閱https://msdn.microsoft.com/en-us/library/018hxwa8(v=vs.110).aspx code

試試這個例子吧 orm

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());
    }  
}

#3樓

...沒有參數,而且有一個void返回類型? 事件

若是您正在爲System.Windows.Forms編寫,您還能夠使用: get

public delegate void MethodInvoker()

#4樓

嘗試System.Func<T>System.Action string


#5樓

...沒有參數,而且有一個void返回類型? it

我相信Action是解決這個問題的方法。 io

相關文章
相關標籤/搜索