如何在實現IDisposable的類的MemoryStream對象上使用「using」之後實現Dispose方法?使用C#處理 - 完全實現
public class ControlToByte :IDisposable
{
public static byte[] GetByte(object control)
{
using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream())
{ //do something here }
public void Dispose()
{
//how do you dispose of memorystream object?
}
沒有任何跡象表明ControlToByte在這裏實現了IDisposable ......你並沒有在類中顯示任何狀態。 –
在你發佈的代碼中,'using'將會處理'memoryStream',所以你不需要單獨的Dispose()。 –
我不建議不處理'MemoryStream'(因爲它通過從'Stream'繼承來實現'IDisposable',因此表明它應該在不再使用時丟棄),但是因爲類沒有任何非存在的處理它的資源並沒有真正釋放任何東西。一個常見的誤解是認爲與「MemoryStream」相關聯的內存在釋放時釋放,但該任務留給垃圾收集器。 –