最简单的lambda示例

betty_betty2008 2012-05-31
如题,俺弄不出来;下面的例子可通过编译但打印a的值为垃圾:

import std.stdio;

int main(string[] args)
{
    testLambda;
    readln;
    return 0;
}
void testLambda()
{
   int a =10;
   int b =20;
   a=()=>a+b;
   writeln(a);
}
老Colorful 2012-06-01
你这个示例就很简单啊。只不过用错了。
a=()=>a+b;
改成
a=(()=>a+b)();
就可以获得正确结果了。

原来的代码只是获得一个 delegate 的地址,必须调用才行。
betty_betty2008 2012-06-01
@老Colorful:  3Q
Global site tag (gtag.js) - Google Analytics