C#中的标准代表

Tar*_*ion 42 c# delegates list

在C#中有一些预定义的委托

我知道这些:

EventHandler // Default event callbacks
EventHandler<T> // Default event callbacks with custom parameter (inheriting from EventArgs)
Action // Function without return value and without parameter
Action<T1, T2, T3, T4> // Function without return value and 1-4 parameters
Func<T1, T2, T3, T4, TResult> // Methos with 0-4 parameters and one result type
Predicate<T> // equivalent to Func<T, bool>
Run Code Online (Sandbox Code Playgroud)

对于特殊情况和框架的生成表单部分还有更多,但这些通常很适合在自编代码中使用.

如果你知道一些更有用的添加它们.否则就回答了.

Jon*_*eet 26

它们不是在C#中预定义的.它们由框架定义.

ActionFunc代表的家庭是更广泛的比你已经证明-他们上去

Action<T1, T2, T3, T4>
Run Code Online (Sandbox Code Playgroud)

Func<T1, T2, T3, T4, TResult>
Run Code Online (Sandbox Code Playgroud)

.NET 2.0中用于列表操作的另一个常见问题是(在LINQ之前)Predicate<T>.

用于处理线程:

ThreadStart
ParameterizedThreadStart
WaitCallback
TimerCallback
AsyncCallback
Run Code Online (Sandbox Code Playgroud)


Bri*_*sio 5

我喜欢使用Predicate<T>相当于Func<T, bool>