MemoryStream

public class MemoryStream : Stream
{
    protected override void Dispose(bool disposing)
    {
        try
        {
            if (disposing)
            {
                _isOpen = false;
                _writable = false;
                _expandable = false;
                // Don't set buffer to null - allow TryGetBuffer, GetBuffer & ToArray to work.
#if FEATURE_ASYNC_IO
                    _lastReadTask = null;
#endif
            }
        }
        finally
        {
            // Call base.Close() to cleanup async IO resources
            base.Dispose(disposing);
        }
    }
}

public abstract class Stream : MarshalByRefObject, IDisposable { public virtual void Close() { /* These are correct, but we'd have to fix PipeStream & NetworkStream very carefully. Contract.Ensures(CanRead == false); Contract.Ensures(CanWrite == false); Contract.Ensures(CanSeek == false); */ Dispose(true); GC.SuppressFinalize(this); } public void Dispose() { /* These are correct, but we'd have to fix PipeStream & NetworkStream very carefully. Contract.Ensures(CanRead == false); Contract.Ensures(CanWrite == false); Contract.Ensures(CanSeek == false); */ Close(); } protected virtual void Dispose(bool disposing) { // Note: Never change this to call other virtual methods on Stream // like Write, since the state on subclasses has already been // torn down. This is the last code to run on cleanup for a stream. } }

 

posted @ 2016-11-03 21:56  茗::流  阅读(145)  评论(0)    收藏  举报
如有雷同,纯属参考。如有侵犯你的版权,请联系我。