我是C#的新手,通過C#Head First書中的一些示例工作並試圖應用我以實際的方式學習了。我想在下面的代碼的文本文件閱讀:雖然循環警告始終爲真,因爲類型'int'的值永遠不會等於'int'類型的'null'
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
是給我下面的編譯器警告:
表達式的結果總是
true
因爲int
類型的值是永遠等於int
的null
。
我試圖尋找在Windows library的迴應,但瞭解的API是在自己的權利的任務。
我想我正在尋找的是指導我的搜索或資源來幫助我自己發現答案的指針。我確信有可能有更好的方式來編寫這個任務,但考慮到我對語言的理解,我認爲使用和理解迄今爲止學到的工具很重要,在這種情況下,while
循環。
我想你應該先學習值與參考類型之間的區別。另外 - IntelliSense'Peek()'文檔應該告訴你它可以返回什麼值,所以你可以知道會發生什麼。 – Tarec
@塔雷克,我很欣賞這個方向。再次感謝IntelliSense你的權利,它確實表明返回類型的int,再次感謝。 – TargetofGravity