<?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 - Dynamic</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>Thu, 06 Oct 2011 20:23:30 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=6d27e79d-a1ec-4c88-a34d-caae67bb7da0</trackback:ping>
      <pingback:server>http://www.programgood.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.programgood.net/PermaLink,guid,6d27e79d-a1ec-4c88-a34d-caae67bb7da0.aspx</pingback:target>
      <dc:creator>Dave Mateer</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Whilst getting my head around Rob Conery’s Massive ORM, I needed to figure out what
the dynamic keyword is in C#4:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:876dfc22-66ad-4ad9-9070-5bd2fa201597" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Program</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">static</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> Main(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">[]
args) {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Calculator</span>
              <span style="color:#f1f2f3"> calc </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Calculator</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> sum </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> calc</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Add(</span>
              <span style="color:#ffcd22">1</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ffcd22">2</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Console</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">WriteLine(sum);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Console</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ReadLine();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Calculator</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> Add(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> a, </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> b)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> a</span>
              <span style="color:#e8e2b7">+</span>
              <span style="color:#f1f2f3">b;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
creation of an object, invokation of a method, and the collection of a return value
</p>
        <h3>Var 
</h3>
        <p>
Can represent any type that can be determined at compile time.
</p>
        <h3>
          <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1fc75592-f3c1-442a-a0da-2d697e0d169b" class="wlWriterEditableSmartContent">
            <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
              <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
                <span style="color:#93c763">class</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#678cb1">Program</span>
                <span style="color:#f1f2f3"> {</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">static</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">void</span>
                <span style="color:#f1f2f3"> Main(</span>
                <span style="color:#93c763">string</span>
                <span style="color:#f1f2f3">[]
args) {</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#66747b">//int</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">var</span>
                <span style="color:#f1f2f3"> i </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#ffcd22">5</span>
                <span style="color:#f1f2f3">;</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#66747b">//string</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">var</span>
                <span style="color:#f1f2f3"> x </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#ec7600">"hello"</span>
                <span style="color:#f1f2f3">;</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#66747b">//int[]</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">var</span>
                <span style="color:#f1f2f3"> y </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">new</span>
                <span style="color:#f1f2f3">[]
{ </span>
                <span style="color:#ffcd22">0</span>
                <span style="color:#f1f2f3">, </span>
                <span style="color:#ffcd22">1</span>
                <span style="color:#f1f2f3">, </span>
                <span style="color:#ffcd22">2</span>
                <span style="color:#f1f2f3">, </span>
                <span style="color:#ffcd22">3</span>
                <span style="color:#f1f2f3"> };</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#66747b">//anonymous type</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">var</span>
                <span style="color:#f1f2f3"> anon </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">new</span>
                <span style="color:#f1f2f3"> {
Name </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#ec7600">"Dave"</span>
                <span style="color:#f1f2f3">,
Age </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#ffcd22">34</span>
                <span style="color:#f1f2f3"> };</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#66747b">//List&lt;int&gt;</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">var</span>
                <span style="color:#f1f2f3"> list </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">new</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#678cb1">List</span>
                <span style="color:#e8e2b7">&lt;</span>
                <span style="color:#93c763">int</span>
                <span style="color:#e8e2b7">&gt;</span>
                <span style="color:#f1f2f3">();</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#66747b">//Calculator</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">var</span>
                <span style="color:#f1f2f3"> calc </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">new</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#678cb1">Calculator</span>
                <span style="color:#f1f2f3">();</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">int</span>
                <span style="color:#f1f2f3"> sum </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3"> calc</span>
                <span style="color:#e8e2b7">.</span>
                <span style="color:#f1f2f3">Add(</span>
                <span style="color:#ffcd22">1</span>
                <span style="color:#f1f2f3">, </span>
                <span style="color:#ffcd22">2</span>
                <span style="color:#f1f2f3">);</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#678cb1">Console</span>
                <span style="color:#e8e2b7">.</span>
                <span style="color:#f1f2f3">WriteLine(sum);</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#678cb1">Console</span>
                <span style="color:#e8e2b7">.</span>
                <span style="color:#f1f2f3">ReadLine();</span>
                <br />
                <span style="color:#f1f2f3"> }</span>
                <br />
                <span style="color:#f1f2f3"> }</span>
                <br />
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">public</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">class</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#678cb1">Calculator</span>
                <span style="color:#f1f2f3"> {</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">public</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">int</span>
                <span style="color:#f1f2f3"> Add(</span>
                <span style="color:#93c763">int</span>
                <span style="color:#f1f2f3"> a, </span>
                <span style="color:#93c763">int</span>
                <span style="color:#f1f2f3"> b)
{</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">return</span>
                <span style="color:#f1f2f3"> a</span>
                <span style="color:#e8e2b7">+</span>
                <span style="color:#f1f2f3">b;</span>
                <br />
                <span style="color:#f1f2f3"> }</span>
                <br />
                <span style="color:#f1f2f3"> }</span>
              </div>
            </div>
          </div>
        </h3>
        <p>
 
</p>
        <h3>Dynamic
</h3>
        <p>
at runtime you get the type
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e0f43c13-825a-4dfa-85fe-364552e3ce63" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Program</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">static</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> Main(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">[]
args) {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//int</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> i </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ffcd22">5</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//string</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> x </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"hello"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//int[]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> y </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">[]
{ </span>
              <span style="color:#ffcd22">0</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ffcd22">2</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ffcd22">3</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ffcd22">4</span>
              <span style="color:#f1f2f3"> };</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//anonymous type</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> anon </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> {Name</span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#ec7600">"Dave"</span>
              <span style="color:#f1f2f3">,
Age</span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#ffcd22">34}</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Console</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">WriteLine(i </span>
              <span style="color:#e8e2b7">+</span>
              <span style="color:#f1f2f3"> x);</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> calc </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Calculator</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//don't get intellisense
when press .</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> sum </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> calc</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Add(</span>
              <span style="color:#ffcd22">1</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ffcd22">2</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Console</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">WriteLine(sum);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Console</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ReadLine();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Calculator</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> Add(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> a, </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> b)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> a</span>
              <span style="color:#e8e2b7">+</span>
              <span style="color:#f1f2f3">b;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
 
</p>
        <h3>ExpandoObject and TryInvokeMember
</h3>
        <p>
An object whose members can be dynamically added and removed at runtime.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_2.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_thumb.png" width="476" height="430" />
          </a>
        </p>
        <p>
can’t do anything with the expandoObject though!
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_4.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_thumb_1.png" width="436" height="115" />
          </a>
        </p>
        <p>
Much better.  Saying to the compiler – “Playing with a different set of rules”.
</p>
        <h3>Why doesn’t Product need to by Dynamic?
</h3>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5766f7c2-2cd9-4ca1-91e6-c0de284ba7b9" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> tbl </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">DynamicModel</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#ec7600">"Northwind"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"Products"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"ProductID"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//tbl.Single returns
a dynamic of type ExpandoOnject, not an ExpandoObject.</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//acutally an IEnumrable&lt;dynamic&gt;.FirstOfDefault()</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> product </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> tbl</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Single();</span>
            </div>
          </div>
        </div>
        <p>
We don’t need product to be dynamic here as tbl.Single returns a dynamic of type Expando.
</p>
        <p>
tbl has to be dynamic otherwise the TryInvokeMember wont work, as there is no method
called Single.
</p>
        <img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=6d27e79d-a1ec-4c88-a34d-caae67bb7da0" />
      </body>
      <title>Dynamics and ExpandoObject</title>
      <guid isPermaLink="false">http://www.programgood.net/PermaLink,guid,6d27e79d-a1ec-4c88-a34d-caae67bb7da0.aspx</guid>
      <link>http://www.programgood.net/2011/10/06/DynamicsAndExpandoObject.aspx</link>
      <pubDate>Thu, 06 Oct 2011 20:23:30 GMT</pubDate>
      <description>&lt;p&gt;
Whilst getting my head around Rob Conery’s Massive ORM, I needed to figure out what
the dynamic keyword is in C#4:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:876dfc22-66ad-4ad9-9070-5bd2fa201597" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Program&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;static&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Main(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
args) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; calc &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; sum &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; calc&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Add(&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;1&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;WriteLine(sum);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ReadLine();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Add(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a, &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; b)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;b;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
creation of an object, invokation of a method, and the collection of a return value
&lt;/p&gt;
&lt;h3&gt;Var 
&lt;/h3&gt;
&lt;p&gt;
Can represent any type that can be determined at compile time.
&lt;/p&gt;
&lt;h3&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1fc75592-f3c1-442a-a0da-2d697e0d169b" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Program&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;static&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Main(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
args) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//int&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; i &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;5&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//string&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; x &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;hello&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//int[]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; y &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
{ &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;0&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;1&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;3&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//anonymous type&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; anon &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {
Name &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Dave&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
Age &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;34&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//List&amp;lt;int&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; list &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;List&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//Calculator&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; calc &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; sum &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; calc&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Add(&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;1&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;WriteLine(sum);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ReadLine();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Add(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a, &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; b)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;b;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h3&gt;Dynamic
&lt;/h3&gt;
&lt;p&gt;
at runtime you get the type
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e0f43c13-825a-4dfa-85fe-364552e3ce63" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Program&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;static&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Main(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
args) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//int&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; i &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;5&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//string&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; x &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;hello&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//int[]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; y &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
{ &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;0&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;3&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;4&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//anonymous type&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; anon &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {Name&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Dave&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
Age&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;34}&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;WriteLine(i &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; x);&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; calc &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//don&amp;#39;t get intellisense
when press .&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; sum &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; calc&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Add(&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;1&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;WriteLine(sum);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ReadLine();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Add(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a, &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; b)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;b;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h3&gt;ExpandoObject and TryInvokeMember
&lt;/h3&gt;
&lt;p&gt;
An object whose members can be dynamically added and removed at runtime.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_thumb.png" width="476" height="430" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
can’t do anything with the expandoObject though!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_thumb_1.png" width="436" height="115" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Much better.&amp;#160; Saying to the compiler – “Playing with a different set of rules”.
&lt;/p&gt;
&lt;h3&gt;Why doesn’t Product need to by Dynamic?
&lt;/h3&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5766f7c2-2cd9-4ca1-91e6-c0de284ba7b9" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; tbl &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;DynamicModel&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Northwind&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Products&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;ProductID&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//tbl.Single returns
a dynamic of type ExpandoOnject, not an ExpandoObject.&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//acutally an IEnumrable&amp;lt;dynamic&amp;gt;.FirstOfDefault()&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; product &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; tbl&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Single();&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
We don’t need product to be dynamic here as tbl.Single returns a dynamic of type Expando.
&lt;/p&gt;
&lt;p&gt;
tbl has to be dynamic otherwise the TryInvokeMember wont work, as there is no method
called Single.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=6d27e79d-a1ec-4c88-a34d-caae67bb7da0" /&gt;</description>
      <category>Dynamic</category>
      <category>ExpandoObject</category>
      <category>PubTricks</category>
      <category>VidPub</category>
    </item>
    <item>
      <trackback:ping>http://www.programgood.net/Trackback.aspx?guid=e67d4e6f-bfea-4090-b6d6-903c0ab71029</trackback:ping>
      <pingback:server>http://www.programgood.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.programgood.net/PermaLink,guid,e67d4e6f-bfea-4090-b6d6-903c0ab71029.aspx</pingback:target>
      <dc:creator>Dave Mateer</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
WebMatix.Data
</p>
        <p>
          <a href="http://studiostyl.es/">http://studiostyl.es/</a> – Obsidian
</p>
        <p>
{ is not on a new line.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/Rob-ConeryWebMatrix_113FB/image_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/Rob-ConeryWebMatrix_113FB/image_thumb.png" width="644" height="395" />
          </a>
        </p>
        <p>
SELECT SCOPE_IDENTITY – brings back id of recently inserted record
</p>
        <p>
 
</p>
        <p>
Testing all done in razor
</p>
        <p>
Get source code to see flashy nice stuff (messages on top)
</p>
        <p>
Kind of like RSpec (BDD Tool for Ruby)
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/Rob-ConeryWebMatrix_113FB/image_4.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/Rob-ConeryWebMatrix_113FB/image_thumb_1.png" width="543" height="484" />
          </a>
        </p>
        <p>
BDD stuff here:
</p>
        <p>
          <a href="http://blog.wekeroad.com/microsoft/the-super-dynamic-massive-freakshow">http://blog.wekeroad.com/microsoft/the-super-dynamic-massive-freakshow</a>
        </p>
        <p>
          <a href="https://github.com/robconery/massive">https://github.com/robconery/massive</a> –
ansyc (Task Parallel Lib) too..
</p>
        <p>
          <a href="http://blog.wekeroad.com/helpy-stuff/and-i-shall-call-it-massive">http://blog.wekeroad.com/helpy-stuff/and-i-shall-call-it-massive</a>
        </p>
        <img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=e67d4e6f-bfea-4090-b6d6-903c0ab71029" />
      </body>
      <title>Rob Conery–WebMatrix and Testing</title>
      <guid isPermaLink="false">http://www.programgood.net/PermaLink,guid,e67d4e6f-bfea-4090-b6d6-903c0ab71029.aspx</guid>
      <link>http://www.programgood.net/2011/07/21/RobConeryWebMatrixAndTesting.aspx</link>
      <pubDate>Thu, 21 Jul 2011 01:01:55 GMT</pubDate>
      <description>&lt;p&gt;
WebMatix.Data
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://studiostyl.es/"&gt;http://studiostyl.es/&lt;/a&gt; – Obsidian
&lt;/p&gt;
&lt;p&gt;
{ is not on a new line.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/Rob-ConeryWebMatrix_113FB/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/Rob-ConeryWebMatrix_113FB/image_thumb.png" width="644" height="395" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
SELECT SCOPE_IDENTITY – brings back id of recently inserted record
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Testing all done in razor
&lt;/p&gt;
&lt;p&gt;
Get source code to see flashy nice stuff (messages on top)
&lt;/p&gt;
&lt;p&gt;
Kind of like RSpec (BDD Tool for Ruby)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/Rob-ConeryWebMatrix_113FB/image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/Rob-ConeryWebMatrix_113FB/image_thumb_1.png" width="543" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
BDD stuff here:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.wekeroad.com/microsoft/the-super-dynamic-massive-freakshow"&gt;http://blog.wekeroad.com/microsoft/the-super-dynamic-massive-freakshow&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://github.com/robconery/massive"&gt;https://github.com/robconery/massive&lt;/a&gt; –
ansyc (Task Parallel Lib) too..
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.wekeroad.com/helpy-stuff/and-i-shall-call-it-massive"&gt;http://blog.wekeroad.com/helpy-stuff/and-i-shall-call-it-massive&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=e67d4e6f-bfea-4090-b6d6-903c0ab71029" /&gt;</description>
      <category>BDD</category>
      <category>Dynamic</category>
      <category>WebMatrix</category>
    </item>
  </channel>
</rss>