日期:2014-05-16  浏览次数:21049 次

Func模版如何表示一个返回值是void的函数?
Func模版最后一个参数是返回类型。例如

Func<string, sbyte> f = sbyte.Parse;

可是如果一个函数的返回值是void类型,怎么用Func来表示呢?直接把void作为Func的模版参数是不行的啊,便以不过。例如给FileSystemWatcher一个Func,我尝试以下定义:

Func<void, object, FileSystemEventArgs> f = (source, e) => Console.WriteLine("检测到变化");

就会给出编译错误: error CS1547: Keyword 'void' cannot be used in this context

到底应该怎么办呢? 处理void返回类型?
------解决方案--------------------
返回值是void类型 不能用Func      用 Action<object, FileSystemEventArgs>
------解决方案--------------------
Func<>如果干这个,还要Action<>干嘛?!
------解决方案--------------------
msdn不会用就直接写委托吧。。。
------解决方案--------------------
Action<T>