W języku C# używam StreamReader
do odczytu pliku, wiersz po linii. Przechowuję również numer bieżącego wiersza w numerze int
, dla raportów o możliwych komunikatach o błędach.Czy obsługa C# nie zawiera parametrów?
Czytanie każdej linii idzie w parze z pewnymi testami (na przykład linie zaczynające się od #
są komentarzami i muszą zostać pominięte), więc planuję umieścić całą procedurę czytania w funkcji, która będzie kontynuowała czytanie do momentu, aż napotka przydatną linię, a następnie zwróci tę linię. Jeśli napotka EOF
, po prostu zwróci null
.
Pomyślałem, że byłem sprytny, kiedy zdefiniowałem tę funkcję jako string read(StreamReader sr, out int lineNumber)
, ale teraz okazuje się, że C# nie będzie w stanie wykonać czegoś takiego jak lineNumber++
wewnątrz tej funkcji. Zakłada on, że zmienna nie została jeszcze przypisana, prawdopodobnie dlatego, że nie ma możliwości sprawdzenia, czy została ona przypisana przed wywołaniem tej funkcji.
Problem jest prosty: jak mogę określić, że ta zmienna jest parametrem inout
(myślę, że to termin, słyszałem, że jest on wymieniany w kontekście innych języków programowania)? Czy to w ogóle możliwe? Absolutnie nie zamierzam uczynić lineNumber
członkiem mojej klasy, więc nie jest to opcja.
zdefiniuj to jako więcej tutaj http://msdn.microsoft.com/pl -IN/library/14akc2c7 (v = vs.71) .aspx –
Czego szukasz parametrów ref: http://msdn.microsoft.com/de-de/library/14akc2c7(v=vs.80) .aspx – Mecaveli
Odpowiednikiem 'inout' w języku C# jest' ref'. 'out' jest również przydatny. Czy tego właśnie szukałeś? –