在代码审查中,一位同事更改了我的代码以将 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);
}
添加额外参数是否有任何技术原因?