코드 검토에서 동료가 코드를 변경하여 스트림에서 매개 변수로 전달했습니다. 그는 이것이 물체를 처분 할 책임이 호출자에게 분명하다는 것을 보증하는 것이라고 말했다. 어떤 의미에서 나는 공감할 수 있습니다. 나는 또한 객체 제작자가 정리를 책임지는 것을 선호 할 것이다.일회용 물체를 통과시켜야합니까?
다른 한편으로는 어느 방법도 using
에 대한 필요성을 없앴습니다. 나는 더 간단한 메소드 호출을 선호한다.
여분 PARAM를 추가 할 수있는 기술적 인 이유가
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);
}
을 가지고?
예를 들어, 'XmlSerializer'와 같은 .NET Framework에서 단서를 얻으면 스트림이 매개 변수로 전달되는 경향이 있습니다. – mellamokb
http://codereview.stackexchange.com/에 대한 질문이있을 수 있습니다. – MattDavey