Я пытаюсь «обернуть» StreamReader
в классе Fichier
, с некоторыми дополнительными методами и атрибутами.Как проверить, открыт ли StreamReader?
Я хочу две вещи:
StreamReader
открывается автоматически вFichier
классе;StreamReader
открывается, когда мы используем переопределенный методReadLine
, а не раньше (мы должны изменить файл перед его чтением с помощьюStreamReader
).
кусок моего кода выглядит следующим образом:
public string ReadLine()
{
if (Reader == null || ???)
{
Reader = new StreamReader(Path);
}
return Reader.ReadLine();
}
В ???
, я хочу, чтобы проверить, если StreamReader был закрыт. Действительно, если мы делаем:
StreamReader sr = new StreamReader(path);
sr.Close();
sr
не равно нулю, но как проверить, что она закрыта, и как вновь открыть его?
Если вам интересно, почему мне нужно открывать и закрывать StreamReader
, это связано с тем, что объект Fichier
должен существовать в любое время, но файл, который он представляет, должен быть изменен несколько раз во внешней программе.
«Система.В пространстве имен IO 'есть класс с именем' File', поэтому будьте осторожны, чтобы вы не смешивали свой собственный класс и ['System.IO.File'] (https://msdn.microsoft.com/en-us/library /system.io.file%28v=vs.110%29.aspx). – cubrr
'.BaseStream.CanRead' возможно, хотя явное удаление/null было бы лучше. –
Я французский, поэтому мой класс - «Фихье». Я отредактирую это, я хотел быть всеобъемлющим, но я сделал наоборот. – Chostakovitch