我从我的代码分析中得到了一个CA2000错误,要求我在退出作用域之前处理掉对象
如果我不处理对象并且不使用using语句,会发生什么?
我对这个规则感到惊讶,因为我认为当退出作用域时,处理程序会自动运行。注意:类似的问题已经被问过,并确认了我的观点,不要强制执行处理程序。在方法'MyMethod(Guid?)'中,在所有引用它的对象都超出作用域之前,调用System.IDisposable.Dispose来释放'person'对象。
如果我不处理对象并且不使用using语句,会发生什么?
using
语句中即可。 - Robert Harveyusing
将调用dispose
。 - Miserable VariableIDisposable
接口的类就可以随时调用dispose
方法。使用using
语句是最好的选择,但如果由于某种原因有人不想利用编译器的魔力,他们可以简单地使用try{...}finally{//Dispose}
...这就是 using 语句编译成的代码。 - myermian