title: Does Stream.Dispose always call Stream.Close (and Stream.Flush)
body: <p>If I have the following situation:</p>
  
  <pre><code>StreamWriter MySW = null;
  try
  {
     Stream MyStream = new FileStream("asdf.txt");
     MySW = new StreamWriter(MyStream);
     MySW.Write("blah");
  }
  finally
  {
     if (MySW != null)
     {
        MySW.Flush();
        MySW.Close();
        MySW.Dispose();
     }
  }
  </code></pre>
  
  <p>Can I just call <code>MySW.Dispose()</code> and skip the Close even though it is provided?  Are there any Stream implimentations that don't work as expected (Like CryptoStream)?</p>
  
  <p>If not, then is the following just bad code:</p>
  
  <pre><code>using (StreamWriter MySW = new StreamWriter(MyStream))
  {
     MySW.Write("Blah");
  }
  </code></pre>