<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>ProgramGood.Net - Debug</title>
    <link>http://www.programgood.net/</link>
    <description>The journey to becoming a great programmer</description>
    <language>en-us</language>
    <copyright>Dave Mateer</copyright>
    <lastBuildDate>Wed, 25 Aug 2010 22:08:48 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.2.8279.16125</generator>
    <managingEditor>davemateer@gmail.com</managingEditor>
    <webMaster>davemateer@gmail.com</webMaster>
    <item>
      <trackback:ping>http://www.programgood.net/Trackback.aspx?guid=9fbde7a3-15f1-4b72-a4f4-9e4bdd238053</trackback:ping>
      <pingback:server>http://www.programgood.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.programgood.net/PermaLink,guid,9fbde7a3-15f1-4b72-a4f4-9e4bdd238053.aspx</pingback:target>
      <dc:creator>Dave Mateer</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From a SO question:
</p>
        <div id="codeSnippetWrapper">
          <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
            <p>
              <span style="color: #0000ff">namespace</span> ConsoleApplication1<br />
{<br /><span style="color: #0000ff">class</span> Program<br />
{<br /><span style="color: #0000ff">static</span><span style="color: #0000ff">void</span> Main(<span style="color: #0000ff">string</span>[]
args)<br />
{<br />
Console.WriteLine(<span style="color: #006080">"Hello world"</span>);<br /><span style="color: #0000ff">string</span><span style="color: #0000ff">value</span> =
SendEmail(<span style="color: #006080">""</span>);<br />
}<br /><br /><span style="color: #0000ff">static</span><span style="color: #0000ff">string</span> SendEmail(<span style="color: #0000ff">string</span> subject)<br />
{<br /><span style="color: #cc6633">#region</span> Parameter assertions<br />
Debug.Assert(subject != <span style="color: #006080">""</span>);<br /><span style="color: #cc6633">#endregion</span><br /><span style="color: #0000ff">return</span> subject;<br />
}<br />
}<br />
}<br /></p>
            <p>
 
</p>
            <p>
 
</p>
            <font style="background-color: #ffffff">
            </font>
          </pre>
          <br />
        </div>
        <p>
Put Debug.Assert() everywhere in the code where you want have sanity checks to ensure
invariants. When you compile a Release build (i.e., no DEBUG compiler constant), the
calls to Debug.Assert() will be removed so they won't affect performance.
</p>
        <p>
You should still throw exceptions before calling Debug.Assert(). The assert just makes
sure that everything is as expected while you're still developing.
</p>
        <p>
          <a href="http://stackoverflow.com/questions/129120/when-should-i-use-debug-assert">http://stackoverflow.com/questions/129120/when-should-i-use-debug-assert</a>
        </p>
        <img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=9fbde7a3-15f1-4b72-a4f4-9e4bdd238053" />
      </body>
      <title>Debug.Assert()</title>
      <guid isPermaLink="false">http://www.programgood.net/PermaLink,guid,9fbde7a3-15f1-4b72-a4f4-9e4bdd238053.aspx</guid>
      <link>http://www.programgood.net/2010/08/25/DebugAssert.aspx</link>
      <pubDate>Wed, 25 Aug 2010 22:08:48 GMT</pubDate>
      <description>&lt;p&gt;
From a SO question:
&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
&lt;p&gt;
&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; ConsoleApplication1&lt;br /&gt;
{&lt;br /&gt;
&lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Program&lt;br /&gt;
{&lt;br /&gt;
&lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Main(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[]
args)&lt;br /&gt;
{&lt;br /&gt;
Console.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;Hello world&amp;quot;&lt;/span&gt;);&lt;br /&gt;
&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; &lt;span style="color: #0000ff"&gt;value&lt;/span&gt; =
SendEmail(&lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; SendEmail(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; subject)&lt;br /&gt;
{&lt;br /&gt;
&lt;span style="color: #cc6633"&gt;#region&lt;/span&gt; Parameter assertions&lt;br /&gt;
Debug.Assert(subject != &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);&lt;br /&gt;
&lt;span style="color: #cc6633"&gt;#endregion&lt;/span&gt;
&lt;br /&gt;
&lt;span style="color: #0000ff"&gt;return&lt;/span&gt; subject;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;font style="background-color: #ffffff"&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;p&gt;
Put Debug.Assert() everywhere in the code where you want have sanity checks to ensure
invariants. When you compile a Release build (i.e., no DEBUG compiler constant), the
calls to Debug.Assert() will be removed so they won't affect performance.
&lt;/p&gt;
&lt;p&gt;
You should still throw exceptions before calling Debug.Assert(). The assert just makes
sure that everything is as expected while you're still developing.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://stackoverflow.com/questions/129120/when-should-i-use-debug-assert"&gt;http://stackoverflow.com/questions/129120/when-should-i-use-debug-assert&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=9fbde7a3-15f1-4b72-a4f4-9e4bdd238053" /&gt;</description>
      <category>Debug</category>
    </item>
  </channel>
</rss>