草庐IT

disposable

全部标签

c# - 是否应该让 IDisposable.Dispose() 安全地多次调用?

IDisposable的实现是否应该使Dispose()可以安全地多次调用?或者相反?大多数.NETFramework类采用什么方法?具体来说,多次调用System.Data.Linq.DataContext.Dispose()是否安全?我问的原因是因为我想知道是否需要这种额外的保护:publicoverridevoidDispose(booldisposing){//Extraprotection...if(this.obj!=null){this.obj.Dispose();this.obj=null;}//Versussimply...this.obj.Dispose();bas

c# - .Disposing StreamWriter 是否关闭底层流?

StreamWriter.Close()表示它还关闭了StreamWriter的底层流。StreamWriter.Dispose怎么样?Dispose是否也处理和/或关闭底层流 最佳答案 StreamWriter.Close()只是在引擎盖下调用StreamWriter.Dispose(),因此它们做的事情完全相同。StreamWriter.Dispose()会关闭底层流。Reflector是你问这样问题的friend:) 关于c#-.DisposingStreamWriter是否关闭底

c# - .Disposing StreamWriter 是否关闭底层流?

StreamWriter.Close()表示它还关闭了StreamWriter的底层流。StreamWriter.Dispose怎么样?Dispose是否也处理和/或关闭底层流 最佳答案 StreamWriter.Close()只是在引擎盖下调用StreamWriter.Dispose(),因此它们做的事情完全相同。StreamWriter.Dispose()会关闭底层流。Reflector是你问这样问题的friend:) 关于c#-.DisposingStreamWriter是否关闭底

c# - IDisposable.Dispose() 是否自动调用?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:WilltheGarbageCollectorcallIDisposable.Disposeforme?我有一个包含一些非托管资源的类。我的类实现了IDisposable接口(interface),在Dispose()方法中释放了非托管资源。我必须调用Dispose()方法还是会以某种方式自动调用它?垃圾收集器会调用它吗?

c# - IDisposable.Dispose() 是否自动调用?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:WilltheGarbageCollectorcallIDisposable.Disposeforme?我有一个包含一些非托管资源的类。我的类实现了IDisposable接口(interface),在Dispose()方法中释放了非托管资源。我必须调用Dispose()方法还是会以某种方式自动调用它?垃圾收集器会调用它吗?

c# - foreach 会自动调用 Dispose 吗?

在C#中,foreach是否会在任何实现IDisposable的对象上自动调用Dispose?http://msdn.microsoft.com/en-us/library/aa664754(v=vs.71).aspx似乎表明它确实如此:*否则集合表达式是实现了System.IEnumerable的类型,foreach语句的展开为:复制IEnumeratorenumerator=((System.Collections.IEnumerable)(collection)).GetEnumerator();try{while(enumerator.MoveNext()){ElementTy

c# - foreach 会自动调用 Dispose 吗?

在C#中,foreach是否会在任何实现IDisposable的对象上自动调用Dispose?http://msdn.microsoft.com/en-us/library/aa664754(v=vs.71).aspx似乎表明它确实如此:*否则集合表达式是实现了System.IEnumerable的类型,foreach语句的展开为:复制IEnumeratorenumerator=((System.Collections.IEnumerable)(collection)).GetEnumerator();try{while(enumerator.MoveNext()){ElementTy

c# - 当传递给另一个对象时,谁应该在 IDisposable 对象上调用 Dispose?

是否有关于谁应该调用Dispose()的任何指导或最佳实践当一次性对象被传递到另一个对象的方法或构造函数时?这里有几个例子来说明我的意思。IDisposable对象被传递给一个方法(它应该在完成后处理它吗?):publicvoidDoStuff(IDisposabledisposableObj){//DosomethingwithdisposableObjCalculateSomething(disposableObj)disposableObj.Dispose();}IDisposable对象被传递到一个方法中并保留一个引用(它应该在处理MyClass时处理它吗?):publiccl

c# - 当传递给另一个对象时,谁应该在 IDisposable 对象上调用 Dispose?

是否有关于谁应该调用Dispose()的任何指导或最佳实践当一次性对象被传递到另一个对象的方法或构造函数时?这里有几个例子来说明我的意思。IDisposable对象被传递给一个方法(它应该在完成后处理它吗?):publicvoidDoStuff(IDisposabledisposableObj){//DosomethingwithdisposableObjCalculateSomething(disposableObj)disposableObj.Dispose();}IDisposable对象被传递到一个方法中并保留一个引用(它应该在处理MyClass时处理它吗?):publiccl

c# - 如何将 Dispose 功能添加到 C# UserControl?

我有一个实现UserControl的类。在.NET2005中,会在MyClass.Designer.cs分部类文件中自动创建Dispose方法,如下所示:protectedoverridevoidDispose(booldisposing){if(disposing&&(components!=null)){components.Dispose();}base.Dispose(disposing);}如果我想添加自己的Dispose功能,应该把它放在哪里?由于此文件已生成,我不想在此处添加代码并冒着它被吹走的风险。 最佳答案 所有C