全部Func委托都返回一个值。 什么是能够与返回void的方法一块儿使用的.NET委托? 函数
有时您会想要为事件处理编写委托,在这种状况下,您能够利用System.EvenHandler<T>
,除了应该从EventArgs
派生的第二个参数以外, System.EvenHandler<T>
隐式接受object
类型的参数。 EventHandlers将返回void
测试
我我的发现这在测试过程当中有用,能够在函数体中建立一次性回调。 spa
一种很是简单的方法来调用return和non return value子例程。 分别使用Func和Action 。 (另请参阅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()); } }
...没有参数,而且有一个void返回类型? 事件
若是您正在为System.Windows.Forms
编写,您还能够使用: get
public delegate void MethodInvoker()
尝试System.Func<T>
和System.Action
string
...没有参数,而且有一个void返回类型? it
我相信Action
是解决这个问题的方法。 io