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