title: VB.NET - Should a Finalize method be added when implementing IDisposable?
body: <p>In Visual Studio, when I type the line "<code>Implements IDisposable</code>", the IDE automatically adds:</p>
  
  <ul>
  <li>a <code>disposedValue</code> member variable</li>
  <li>a <code>Sub Dispose() Implements IDisposable.Dispose</code></li>
  <li>a <code>Sub Dispose(ByVal disposing As Boolean)</code></li>
  </ul>
  
  <p>The <code>Dispose()</code> should be left alone, and the clean up code should be put in <code>Dispose(disposing)</code>.</p>
  
  <p>However the <a href="http://msdn.microsoft.com/en-us/library/s9bwddyx.aspx" rel="noreferrer" title="Dispose Finalize Pattern">Dispose Finalize Pattern</a> says you should also override <code>Sub Finalize()</code> to call <code>Dispose(False)</code>. Why doesn't the IDE also add this? Must I add it myself, or is it somehow called implicitly?</p>
  
  <p><strike><strong>EDIT:</strong> Any idea why the IDE automatically adds 80% of the required stuff but leaves out the Finalize method? Isn't the whole point of this kind of feature to help you <em>not</em> forget these things?</strike></p>
  
  <p><strong>EDIT2:</strong> Thank you all for your excellent answers, this now makes perfect sense!</p>