Looking for .net Keywords? Try Ask4Keywords

.NET Framework Неуправляемые ресурсы


пример

Когда мы говорим о GC и «куче», мы действительно говорим о том, что называется управляемой кучей . Объекты в управляемой куче могут обращаться к ресурсам не на управляемой куче, например, при записи или чтении из файла. Неожиданное поведение может возникать, когда файл открывается для чтения, а затем возникает исключение, предотвращая закрытие дескриптора файла, как обычно. По этой причине .NET требует, чтобы неуправляемые ресурсы реализовали интерфейс IDisposable . Этот интерфейс имеет один метод Dispose без параметров:

public interface IDisposable
{
    Dispose();
} 

При работе с неуправляемыми ресурсами вы должны убедиться, что они правильно настроены. Вы можете сделать это, явно вызвав Dispose() в блоке finally или с using оператора using .

StreamReader sr; 
string textFromFile;
string filename = "SomeFile.txt";
try 
{
    sr = new StreamReader(filename);
    textFromFile = sr.ReadToEnd();
}
finally
{
    if (sr != null) sr.Dispose();
}

или же

string textFromFile;
string filename = "SomeFile.txt";

using (StreamReader sr = new Streamreader(filename))
{
    textFromFile = sr.ReadToEnd();
}

Последний является предпочтительным методом и автоматически расширяется до первого во время компиляции.