0

私は C# を初めて使用し、C# Head First の本のいくつかの例に取り組み、学んだことを実用的な方法で適用しようとしています。次のコードを使用してテキスト ファイルを読み込もうとしています。

private StreamReader upload;

private void Form1_Load(object sender, EventArgs e)
{
    if (File.Exists(@"C:\Users\Recon 5\Desktop\ToDo.txt"))
    {
        upload = new StreamReader(@"C:\Users\Recon 5\Desktop\ToDo.txt");
        while (upload.Peek() != null)
        {
            currentTasks.Items.Add(upload.ReadLine());
        }
        upload.Close();
    }
}

上記のコードは意図した結果を提供します。つまり、テキスト ファイルからリスト ボックスに項目を追加します。私が理解していないのは、次の式の理由です。

upload.Peek() != null

次のコンパイラ警告が表示されます。

truetype の値が type の値とint等しくなることはないため、null式の結果は常にintです。

Windowsライブラリで応答を探してみましたが、API を理解すること自体が課題です。

私が探しているのは、検索をガイドするための役立つポインター、または自分で答えを見つけるのに役立つリソースであると思います。whileこのタスクを記述するためのより良い方法があると確信していますが、言語の理解が進んでいることを考えると、これまでに学んだツール (この場合はループ) を使用して理解することが重要だと感じています。

4

1 に答える 1

6
while (upload.Peek() != null)

StreamReader.Peek()…戻れないから怪しいnull。正しい行は次のようになると思います。

while (upload.Peek() != -1)

戻り値の
型: System.Int32
次に読み取る文字を表す整数。読み取る文字がない場合、またはストリームがシークをサポートしていない場合は -1。

于 2013-08-17T18:14:52.533 に答える