C# 是否需要为新的';使用块中的d对象?

C# 是否需要为新的';使用块中的d对象?,c#,C#,“使用”块通常是这样写的: using (new Foo()) { ... } using (var f = new Foo()) { ... } 而不是像这样: using (new Foo()) { ... } using (var f = new Foo()) { ... } 在第一种情况下,如果没有设置对新Foo对象的显式引用,是否存在在块结束之前处理该对象的危险?如果没有,为什么不呢?没有提前处理的危险 第一个示例仍然创建对所创建对象的显式引用。该引用未命名,无法在代码中使用

“使用”块通常是这样写的:

using (new Foo()) { ... }
using (var f = new Foo()) { ... }
而不是像这样:

using (new Foo()) { ... }
using (var f = new Foo()) { ... }

在第一种情况下,如果没有设置对新Foo对象的显式引用,是否存在在块结束之前处理该对象的危险?如果没有,为什么不呢?

没有提前处理的危险

第一个示例仍然创建对所创建对象的显式引用。该引用未命名,无法在代码中使用


使用
块的
将保留引用(尽管未命名),直到块结束。

否您不需要设置显式引用,除非您需要使用范围块访问对象。没有提前处理未引用变量的危险,因为它只有在超出范围时才被处理。

感谢您的快速响应!