使用块是否使对象保持活动状态?

Joe*_*ein 2 c# using object-lifetime

对于某些单元测试,我想将CurrentCulture设置为特定的文化(然后在以后反转这些更改).因为我需要在几个地方做这件事,我正在考虑编写一个CultureChanger类来保存旧文化并在其构造函数中设置新文化,然后在处理过程中重置旧文化.

然后我可以像这样使用它:

using(new CultureChanger(culture)){  
    //some code and assertions with no references to the CultureChanger 
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做,是否有可能在使用块完成之前的某个时间清理CultureChanger?

Chr*_*isF 6

CultureChangerusing"完成"块之后才会清理.

using块以与方法相同的方式定义对象的范围.

有上没有保证时,对象将是块执行后收集垃圾,但它不会发生之前.