В С# я использую StreamReader
для чтения файла, строки в строке. Я также сохраняю текущий номер строки в int
для сообщений о возможных сообщениях об ошибках.
Чтение каждой строки сопровождается некоторыми тестами (например, строки, начинающиеся с #
, являются комментариями и должны быть пропущены), поэтому я планирую разместить всю процедуру чтения в функции, которая будет продолжать читать до тех пор, пока он встречает полезную строку, а затем возвращает эту строку. Если он встретит EOF
, он просто вернет null
.
Мне казалось, что я умный, когда я определил эту функцию как string read(StreamReader sr, out int lineNumber)
, но теперь выясняется, что С# не сможет сделать что-то вроде lineNumber++
внутри этой функции. Он предполагает, что переменная еще не назначена, вероятно, потому, что она не имеет способа узнать, была ли она назначена до этого вызова функции.
Итак, проблема проста: как я могу указать, что эта переменная является параметром inout
(я думаю, что этот термин, я слышал, что он упоминается в контексте других языков программирования)? Возможно ли это в первую очередь? Я не собираюсь делать lineNumber
членом моего класса, поэтому это не вариант.