MemoryStream instance timing help

Posted by rod on Stack Overflow See other posts from Stack Overflow or by rod
Published on 2010-05-14T17:34:08Z Indexed on 2010/05/14 17:54 UTC
Read the original article Hit count: 178

Filed under:
|

Hi All,

Is it ok to instance a MemoryStream at the top of my method, do a bunch of stuff to it, and then use it?

For instance:

public static byte[] TestCode()
{
  MemoryStream m = new MemoryStream();
  ...
  ...
  whole bunch of stuff in between
  ...
  ...

  //finally

  using(m)
  {
     return m.ToArray();
  }
}

Updated code

public static byte[] GetSamplePDF()
{
    using (MemoryStream m = new MemoryStream())
    {
        Document document = new Document();

        PdfWriter.GetInstance(document, m);

        document.Open();

        PopulateTheDocument(document);

        document.Close();

        return m.ToArray();
    }
}

private static void PopulateTheDocument(Document document)
{
    Table aTable = new Table(2, 2);
    aTable.AddCell("0.0");
    aTable.AddCell("0.1");
    aTable.AddCell("1.0");
    aTable.AddCell("1.1");

    document.Add(aTable);

    for (int i = 0; i < 20; i++)
    {
        document.Add(new Phrase("Hello World, Hello Sun, Hello Moon, Hello Stars, Hello Sea, Hello Land, Hello People. "));
    }

}

My point was to try to reuse building the byte code. In other words, build up any kind of document and then send it to TestCode() method.

© Stack Overflow or respective owner

Related posts about c#

Related posts about best-practices