C#和C++中Lambda的不同之处

1、C++ 必须通过捕获表达式[],方可操作本地变量;而 C# 可以直接访问操作;

2、C++ 参数表达式必须标识小括号并指定参数类型;若无参则不括号可省略;

   C# 里只有一个参数时,可不用标识小括号,可省略参数类型说明,若无参则需要用 () 标识;

3、C++ 使用 {} 标函数体,函数体内每个语句都以 ; 号结尾;

      C# 使用 => 算符指定函数体,若函数体只有一句表达式,可以直接书写,若不止一句表达式,使用 {} 标括,函数体内每个语句都以 ; 号结尾。

4、C++ 可选用 mutable 关键字允许函数体修改捕获的本地参量,譬如:[=]()mutable{};C# 无此问题。

5、C++ 可选用 throw 表达式标识 Lambda 函数的异常情况;C# 无此机制。

posted @ 2022-03-23 15:40  xmllxm  阅读(67)  评论(0)    收藏  举报