【问题标题】:Anonymous block in C# [duplicate]C#中的匿名块[重复]
【发布时间】:2020-03-13 11:47:05
【问题描述】:

我正在尝试理解下面的代码 - 下面的匿名块有什么用

{
    Console.WriteLine("Hello World2");
}

上面的代码在方法中可用 - 我是 c# 新手并试图理解它。

【问题讨论】:

  • 如果某些代码被包裹在匿名块中,它的作用域会被块的括号所限制。

标签: c#


【解决方案1】:

在本例中使用:无。

使用匿名块:就像任何块一样,有自己的范围。

例如,此代码将无法编译,因为a 不在块外的范围内:

{
    var a = 2;
    Console.WriteLine(a);
}
Console.WriteLine(a);

您可以阅读更多信息here,虽然这稍微适用于 c/c++,但在 c# 中大部分适用。 here 也可以进行更存在主义的讨论。

【讨论】:

  • 请注意,在 C# 8 中有一个指向匿名块的新点:当作用域结束时,通过 using declaration 在作用域内引入的任何可处置对象都将在作用域的末尾被释放。跨度>
  • @MatthewWatson 真的很好,但我想知道你是否会像那样使用它们,为什么你不会只使用旧的 using(var x = new DisposibleThing()){ ... } 引入块的方法。
  • @Jamiec 缺乏知识。大多数时候我看到(尤其是在SO上)新手使用奇怪的结构,这是因为他们不知道更好。我也可能为此感到内疚。或者曾经。那不一定是人的错。就在上周,我看到一位老师毫无理由地让学生使用世界范围之外的代码。
  • 是的,在这些情况下我总是会使用显式的“使用”块,但我认为值得指出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-22
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
相关资源
最近更新 更多