jjzjj

idisposable

全部标签

c# - 结合 foreach 和使用

我正在遍历ManageObjectCollection。(它是WMI接口(interface)的一部分)。然而重要的是,下面这行代码。:foreach(ManagementObjectresultinresults){//codehere}要点是ManageObject还实现了IDisposable,因此我想将“结果”变量放在usingblock中。关于如何做到这一点而又不会变得太奇怪或太复杂,您有什么想法吗? 最佳答案 foreach(ManagementObjectresultinresults)using(result){//

c# - 结合 foreach 和使用

我正在遍历ManageObjectCollection。(它是WMI接口(interface)的一部分)。然而重要的是,下面这行代码。:foreach(ManagementObjectresultinresults){//codehere}要点是ManageObject还实现了IDisposable,因此我想将“结果”变量放在usingblock中。关于如何做到这一点而又不会变得太奇怪或太复杂,您有什么想法吗? 最佳答案 foreach(ManagementObjectresultinresults)using(result){//

c# - 手动销毁 C# 对象

我刚开始学习C#(来自Java和C++背景),我有一个关于手动垃圾处理的问题:是否有可能在C#中手动销毁对象?我知道IDisposable接口(interface),但假设我正在处理一个我没有编写并且没有实现它的类?它不会有.Dispose()方法,所以using{}已经过时了,.Finalize总是protected或private所以这也不是一个选项。(在这种情况下,我只是想了解C#中的可能。我想如果所有其他方法都失败了,我可以继承假设的ImNotDisposable类,以便它确实实现IDisposable。) 最佳答案 您无需

c# - 手动销毁 C# 对象

我刚开始学习C#(来自Java和C++背景),我有一个关于手动垃圾处理的问题:是否有可能在C#中手动销毁对象?我知道IDisposable接口(interface),但假设我正在处理一个我没有编写并且没有实现它的类?它不会有.Dispose()方法,所以using{}已经过时了,.Finalize总是protected或private所以这也不是一个选项。(在这种情况下,我只是想了解C#中的可能。我想如果所有其他方法都失败了,我可以继承假设的ImNotDisposable类,以便它确实实现IDisposable。) 最佳答案 您无需

c# - 何时或是否在调用 ReadAsStreamAsync 时处理 HttpResponseMessage?

我正在使用System.Net.Http.HttpClient做一些客户端HTTP通信。我将所有HTTP放在一处,从其余代码中抽象出来。在一个实例中,我想将响应内容作为流读取,但流的使用者与发生HTTP通信和打开流的位置完全隔离。在负责HTTP通信的地方,我处理了所有HttpClient东西。此单元测试将在Assert.IsTrue(stream.CanRead)处失败:[TestMethod]publicasyncTaskDebugStreamedContent(){Streamstream=null;//inreallifetheconsumerofthestreamisfaraw

c# - 何时或是否在调用 ReadAsStreamAsync 时处理 HttpResponseMessage?

我正在使用System.Net.Http.HttpClient做一些客户端HTTP通信。我将所有HTTP放在一处,从其余代码中抽象出来。在一个实例中,我想将响应内容作为流读取,但流的使用者与发生HTTP通信和打开流的位置完全隔离。在负责HTTP通信的地方,我处理了所有HttpClient东西。此单元测试将在Assert.IsTrue(stream.CanRead)处失败:[TestMethod]publicasyncTaskDebugStreamedContent(){Streamstream=null;//inreallifetheconsumerofthestreamisfaraw

c# - Process.Dispose() 实际上做了什么?

在C#中,classProcess继承自实现IDisposable的classComponent,因此我可以调用Dispose()在任何Process对象上。我真的必须这样做吗?我怎么知道我是否真的必须这样做?假设我有以下代码:varallProcesses=System.Diagnostics.Process.GetProcesses();varprocessesNames=processes.Select(p=>p.ProcessName);//outputprocessnameshere现在看起来我有一个Process对象数组,我设计了一个try-finally来遍历该数组和Di

c# - Process.Dispose() 实际上做了什么?

在C#中,classProcess继承自实现IDisposable的classComponent,因此我可以调用Dispose()在任何Process对象上。我真的必须这样做吗?我怎么知道我是否真的必须这样做?假设我有以下代码:varallProcesses=System.Diagnostics.Process.GetProcesses();varprocessesNames=processes.Select(p=>p.ProcessName);//outputprocessnameshere现在看起来我有一个Process对象数组,我设计了一个try-finally来遍历该数组和Di

c# - 如何以及何时处置 c# 静态成员?

我有一个包含大量静态成员的类,其中一些保留对托管和非托管对象的引用。例如,一旦引用了Type,就会调用静态构造函数,这会导致我的类启动阻塞任务队列。例如,当调用其中一个静态方法时会发生这种情况。我实现了IDisposable,它为我提供了处理我创建的任何实例对象的处理方法。但是,如果消费者不从我的类中创建任何实例对象,则永远不会调用这些方法。如何以及在何处放置代码来处理由我的类的静态部分维护的引用?我一直认为静态引用资源的处置发生在最后一个实例对象被释放的时候;这是我第一次创建一个不能创建实例的类。 最佳答案 在托管您的类的应用域被

c# - 如何以及何时处置 c# 静态成员?

我有一个包含大量静态成员的类,其中一些保留对托管和非托管对象的引用。例如,一旦引用了Type,就会调用静态构造函数,这会导致我的类启动阻塞任务队列。例如,当调用其中一个静态方法时会发生这种情况。我实现了IDisposable,它为我提供了处理我创建的任何实例对象的处理方法。但是,如果消费者不从我的类中创建任何实例对象,则永远不会调用这些方法。如何以及在何处放置代码来处理由我的类的静态部分维护的引用?我一直认为静态引用资源的处置发生在最后一个实例对象被释放的时候;这是我第一次创建一个不能创建实例的类。 最佳答案 在托管您的类的应用域被