2010-12-28 2 views

ответ

5

Нет, у вас нет необходимо (хотя нет никакого вреда в явном виде). Если вы удаляете поток, он также закроет его ... однако вы все равно можете закрыть его раньше, чем распоряжаться, если это тот случай, который по-прежнему вызывает .Close().

+0

Утилизация и закрытие одинаковы (они называют друг друга). Если вы хотите закрыть его раньше, просто переместите 'use'' '' '. – SLaks

0

Для соединений нет. Для читателя, да.

+0

Что вы говорите о читателе? –

+1

ваше соединение не будет закрыто, если вы не закроете устройство чтения, даже если оно находится в использовании(). – Pabuc

1

В случае Stream - №. Метод Dispose вызывает Close.

1

No using вызовет dispose, и все известные потоки в C# имеют Close в своем распоряжении, но если ваш собственный поток и вы его не реализовали, да, вы должны. не

0

разобранное содержание метода Dispose в System.IO.Stream

public void Dispose() 
{ 
    this.Close(); 
} 

Таким образом, ответ будет нет.

0

Нет, на самом деле, using равно следующее:

using(Stream stream = new Stream()){ 
…… 
} 

Stream stream = null 
try 
{ 
stream = new Stream(); 
} 
finally 
{ 
    stream.Dispose(); 
} 

вы можете посмотреть IL.

+0

Это не отвечает на вопрос. Это относится к методу «Закрыть», а не к методу «Dispose». –

Смежные вопросы