委托:实际上是一种数据类型。
委托数据类型的定义:
delegate ret_type delegate_name(param_type param_name, ...);
声明委托变量:
delegate_name variable_name;
实例化委托变量:
ret_type function_name(param_type param_name, ...);
variable_name = function_name;
variable_name =
delegate(param_type param_name, ...) // 匿名方法实例化委托变量
{
ret_type ret_value;
return ret_value;
}
系统定义的委托:Action代表无返回类型的委托,Func代表有返回类型的委托。
Action<param_type, ...> variable_name;
Func<param_type, ..., ret_type> variable_name;
语句Lambda:可以包含零条或多条语句。
variable_name =
(param_type param_name, ...) =>
{
ret_type ret_value;
return ret_value;
}
variable_name =
(param_name, ...) =>
{
ret_type ret_value;
return ret_value;
}
表达式Lambda:只有一个表达式,没有语句块。
variable_name = (param_type param_name, ...) => ret_value;
variable_name = (param_name, ...) => ret_value;