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对象的显式引用,是否存在在块结束之前处理该对象的危险?如果没有,为什么不呢?没有提前处理的危险 第一个示例仍然创建对所创建对象的显式引用。该引用未命名,无法在代码中使用
使用
块的将保留引用(尽管未命名),直到块结束。否您不需要设置显式引用,除非您需要使用范围块访问对象。没有提前处理未引用变量的危险,因为它只有在超出范围时才被处理。感谢您的快速响应!