В C# я использую StreamReader
для чтения файла, строки в строке. Я также сохраняю номер текущей строки в int
для сообщений о возможных сообщениях об ошибках.Поддерживает ли C# inout параметры?
Чтение каждой строки сопровождается некоторыми тестами (например, строки, начинающиеся с #
, являются комментариями и должны быть пропущены), поэтому я планирую разместить всю процедуру чтения в функции, которая будет продолжать чтение до тех пор, пока не будет встречает полезную строку, а затем возвращает эту строку. Если он встретит EOF
, он просто вернет null
.
Я думал, что был умным, когда я определил эту функцию как string read(StreamReader sr, out int lineNumber)
, но теперь выясняется, что C# не сможет сделать что-то вроде lineNumber++
внутри этой функции. Он предполагает, что переменная еще не назначена, вероятно, потому, что она не имеет способа узнать, была ли она назначена до этого вызова функции.
Итак, проблема проста: как я могу указать, что эта переменная является параметром inout
(я думаю, что это термин, я слышал, что это упоминается в контексте других языков программирования)? Возможно ли это в первую очередь? Я не собираюсь делать lineNumber
членом моего класса, так что это не вариант.
определите его как ref больше здесь http://msdn.microsoft.com/ru -IN/library/14akc2c7 (v = vs.71) .aspx –
Что вы ищете для параметров ref: http://msdn.microsoft.com/de-de/library/14akc2c7(v=vs.80) .aspx – Mecaveli
Эквивалент 'inout' в C# является' ref'. 'out' также является удобным. Это то, что вы искали? –