将内存流用作私有字段是否很危险

时间:2016-04-01 04:45:57

标签: c# security

将内存流用作实例类中的私有字段是否很危险?

该类实现了IDisposable:

class MyIDisposableClass:IDisposable{
private MemoryStream _stream;


//do stuff with _stream


void Dispose(){
_stream.Close();
_stream.Dispose();//does this statement make sense here ?
}
}

将像这样使用:

using(MyIDisposableClass() bla=new MyIDisposableClass())
{...}

这是一种好方法,还是应该做其他事情,让所有班级成员都能访问这类信息?

1 个答案:

答案 0 :(得分:1)

只要您将对象包装在使用中

,就可以了。

在使用块之后,将调用对象的处置方法。只要你清理一切,你就没事了。

如果您担心何时会被调用,此处的代码会显示给您。

using System;

public class DisposableExample : IDisposable
{

    public void Dispose()
    {
        Console.WriteLine("Disposed");
    }
}

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Before Disposing");
        using(var disposableObj = new DisposableExample())
        {
            Console.WriteLine("Inside Using Statement");
        }
        Console.WriteLine("After Disposing");
    }
}

这将打印出来

Before Disposing
Inside Using Statement
Disposed
After Disposing

请参阅小提琴this question