我經常發現自己對面的代碼來是這樣的:重構實例聲明中的方法
try
{
StreamWriter strw = new StreamWriter();
}
然而,try塊的範圍之外對對象的引用。我怎麼能重構(提取到Visual Studio中的字段說,沒有字段或東西)在try塊中的語句,以便它在try塊之上聲明,以便我可以在方法中的任何位置使用它?
謝謝
我經常發現自己對面的代碼來是這樣的:重構實例聲明中的方法
try
{
StreamWriter strw = new StreamWriter();
}
然而,try塊的範圍之外對對象的引用。我怎麼能重構(提取到Visual Studio中的字段說,沒有字段或東西)在try塊中的語句,以便它在try塊之上聲明,以便我可以在方法中的任何位置使用它?
謝謝
你只需要拆分聲明和賦值。如果你有ReSharper的,有做拆分的方法,但你必須手動將其移動:通常
StreamWriter strw = null;
try
{
strw = new StreamWriter();
}
catch()
{ // ...
,加入(技術上沒用)= null;
是必需的,以及,以防止潛在的警告由於賦值處於不同的範圍,因此在賦值之前使用變量。不過,這取決於你如何使用數據。
此外,由於StreamWriter
是IDisposable,因此您需要確保您有一個可處理的finally塊,或將整個用法放在using
塊中。
StreamWriter strw = null;
try
{
strw = new StreamWriter();
}
但對於StreamWriter
(這是IDisposable
)是更好的使用using
-keyword:
using(StreamWriter strw = new StreamWriter())
{
..
}
你可以求助於普通的舊按Ctrl + C和Ctrl + V鍵;-) – 2010-03-26 15:22:13