有沒有辦法可以建議幫助擺脫調用Initialize()和Close()方法並將其替換爲使用塊?我可以在這段代碼中以某種方式替換Initial塊()和Close()方法調用嗎?
或者這種方法完全沒問題?
(想法是確保作家將被處置時FooWriter的消費者寫一些字符串,並用它完成。)
class Program
{
static void Main(string[] args)
{
var writer = new FooWriter();
writer.Initialize();
foreach (var s in args)
writer.Write(s);
writer.Cose();
}
public class FooWriter
{
public StreamWriter Writer;
public void Initialize()
{
Writer = new StreamWriter("MyFile.txt", false);
}
public void Write(string line)
{
if(Writer==null)
throw new NullReferenceException(Writer, "Writer"); // Guard Writer
Writer.WriteLine(line);
}
public void Close()
{
Writer.Dispose();
}
}
我建議讓您保護虛擬處置。 –
哎呀,正在修復。奇怪的是,我無法獲得第一行/最後一行的語法突出顯示...我做錯了什麼? –