在代碼審查中,同事將我的代碼更改爲傳入Stream作爲參數。他說這是爲了確保處理該對象的責任對於調用者來說是清楚的。從某種意義上說,我可以同情。我希望對象創建者也負責清理。應該丟棄一次性物品嗎?
另一方面,這兩種方法都不需要更清晰的using
。我更喜歡簡單的方法調用。
採取
public static TextReader Serialize<T>(T obj) where T: new()
{
if (obj == null) throw new ArgumentNullException("obj");
return Serialize<T>(obj, null);
}
VS
public static void Serialize<T>(T obj, TextWriter outbound) where T : new()
{
if (obj == null) throw new ArgumentNullException("obj");
Serialize<T>(obj, outbound, null);
}
是否有任何技術原因添加額外的PARAM?
如果我們從.NET Framework本身獲取一個提示,例如「XmlSerializer」,則該流往往會作爲參數傳入。 – mellamokb
可能是http://codereview.stackexchange.com/的問題 – MattDavey