在Scala
我可以这样做:
val result = {
val a = 4
val b = 16
a + b
}
这基本上只是一个(在这种情况下是不可变的)变量,它有一个像方法一样的本地范围。
然而,以下表达式在C#
:
var result =
{
var a = 4;
var b = 16;
return a + b;
}
所以问题是,有没有什么方法可以模仿这个功能,而不必被迫制作Func
或单独的方法?
答案 0 :(得分:4)
我的建议是:
var result = 0;
{
var a = 4;
var b = 16;
result = a + b;
}
答案 1 :(得分:3)
为避免结果是委托,您可以在实例化后立即调用Func
:
var result = new Func<int>(() => {
var a = 4;
var b = 16;
return a + b;
})();