我運行一個方法,是三個部分組成,第一部分和3都是「讀文本文件」一樣,C#讀取寫入文本文件結束在中東
和第2部分是保存串到文本文件,
// The Save Path is the text file's Path, used to read and save
// Encode can use Encoding.Default
public static async void SaveTextFile(string StrToSave, string SavePath, Encoding ENCODE)
{
// Part1
try
{
using (StreamReader sr = new StreamReader(SavePath, ENCODE))
{
string result = "";
while (sr.EndOfStream != true)
result = result + sr.ReadLine() + "\n";
MessageBox.Show(result);
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
// Part2
try
{
using (FileStream fs = new FileStream(SavePath, FileMode.Create))
{
using (StreamWriter sw = new StreamWriter(fs, ENCODE))
{
await sw.WriteAsync(StrToSave);
await sw.FlushAsync();
sw.Close();
}
MessageBox.Show("Save");
fs.Close();
}
}
// The Run End Here And didn't Continue to Part 3
catch (Exception e)
{
Console.WriteLine(e);
}
// Part3
try
{
using (StreamReader sr = new StreamReader(SavePath, ENCODE))
{
string result = "";
while (sr.EndOfStream != true)
result = result + sr.ReadLine() + "\n";
MessageBox.Show(result);
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
但我覺得奇怪的是,在這個地方的過程中到底哪裏2部分完成,並且該過程結束,直接,但沒有繼續PART3,
是什麼原因這個條件?一般過程應該貫穿整個方法但不應該停在中間
(還有一個問題) 還有其他方法可以做part2的目的嗎,也可以繼續part3來完成整個方法嗎?
有沒有異常? – pquest
這段代碼是否在try/catch塊中?可能你在它的中間有一個例外。 – jpgrassi
不,即使我將三個使用塊單獨放在三個try catch中,該過程仍然在part2並在調試下結束,我沒有看到它進入catch塊 –