是否可以在c#中执行具有本地作用域的变量
本文关键字:作用域 变量 执行 是否 | 更新日期: 2023-09-27 18:01:11
在Scala
中,我可以执行以下操作:
val result = {
val a = 4
val b = 16
a + b
}
它基本上只是一个(在本例中是不可变的(变量,它有自己的局部作用域,就像方法一样。
但是,以下表达式在C#
中是完全非法的:
var result =
{
var a = 4;
var b = 16;
return a + b;
}
所以问题是,有没有什么方法可以让我模仿这个功能,而不必制作Func
或单独的方法?
我的建议是:
var result = 0;
{
var a = 4;
var b = 16;
result = a + b;
}
为了避免结果是委托,您可以在实例化后立即调用Func
运行:
var result = new Func<int>(() => {
var a = 4;
var b = 16;
return a + b;
})();