是否可以在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或单独的方法?

是否可以在c#中执行具有本地作用域的变量

我的建议是:

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;
})();