Theo ý kiến của bạn, tốt hơn là trả lại luồng bộ nhớ mới được cấp phát từ một hàm hoặc chuyển nó vào hàm? Ví dụ,Trả lại luồng bộ nhớ từ hàm
void Foo(MemoryStream m)
{
m.Write(somebuffer, 0, somebuffer.Length);
}
hoặc
void MemoryStream Foo()
{
MemoryStream retval = new MemoryStream();
retval.Write(somebuffer, 0, somebuffer.Length);
return retval;
}
Có rất nhiều câu trả lời hay ở đây, nhưng không có câu trả lời nào giải thích tại sao VS 2010 đưa ra cảnh báo độ tin cậy CA2000 cho biểu mẫu thứ hai. Bạn không thể xử lý rất tốt đối tượng mà bạn dự định quay trở lại và để vứt bỏ nó sau khi nó được trả về có vẻ khó xử. Làm cho tôi nghĩ rằng hình thức đầu tiên được ưa thích. –