C# ではStreamReader
、ファイルを 1 行ずつ読み取るために a を使用しています。int
また、考えられるエラー メッセージの報告のために、現在の行の番号を に保持しています。
各行の読み取りにはいくつかのテストが伴います (たとえば、 で始まる行#
はコメントであり、スキップする必要があります)。そのため、読み取り手順全体を関数に配置して、有用な行に遭遇するまで読み取りを続けることを計画しています。そしてその行を返します。遭遇EOF
した場合、単純に を返しnull
ます。
この関数を として定義したときは賢いと思っていましたが、C# ではその関数内でstring read(StreamReader sr, out int lineNumber)
次のようなことができないことがわかりました。lineNumber++
おそらく、この関数呼び出しの前に変数が割り当てられているかどうかを知る方法がないため、変数がまだ割り当てられていないと想定しています。
問題は単純です: この変数がパラメーターであることをどのように指定できますかinout
(それが用語だと思います。他のプログラミング言語のコンテキストで言及されているのを聞いたことがあります)。これはそもそも可能ですか?私はlineNumber
自分のクラスのメンバーを作るつもりは絶対にないので、それはオプションではありません.