<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Brahim Benbachir</title>
        <link>http://geekswithblogs.net/bbenbachir/Default.aspx</link>
        <description>Look and See#</description>
        <language>en-GB</language>
        <copyright>Brahim Benbachir</copyright>
        <managingEditor>benbachirb@hotmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Brahim Benbachir</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/bbenbachir/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>A case where it's usefull to use anonymous methods feature of C# 2.0</title>
            <category>.NET</category>
            <link>http://geekswithblogs.net/bbenbachir/archive/2006/09/29/92670.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;FONT face=Tahoma&gt;In C# 1.0, when you wanted to start a thread, you were obliged to write code like this:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008080&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;void&lt;/FONT&gt;&lt;FONT color=#000000&gt; button1_Click(&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;object&lt;/FONT&gt;&lt;FONT color=#000000&gt; sender, &lt;/FONT&gt;&lt;FONT color=#008080&gt;EventArgs&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; e)&lt;BR&gt;&lt;/FONT&gt;{&lt;BR&gt;&amp;nbsp; Thread&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt; t = &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT color=#008080&gt;Thread&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;(new &lt;FONT color=#008080&gt;ThreadStart&lt;/FONT&gt;(Method));&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; t.Start();&lt;BR&gt;}&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face="Courier New" size=2&gt;void&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; Method()&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008080&gt;MessageBox&lt;/FONT&gt;.Show(&lt;FONT color=#800000&gt;"Thread has started"&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr&gt;&lt;FONT face=Tahoma size=2&gt;In C# 2.0, you can use the new feature that are anonymous methods&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#008080&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;
&lt;P&gt;&lt;FONT size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;void&lt;/FONT&gt;&lt;FONT color=#000000&gt; button1_Click(&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;object&lt;/FONT&gt;&lt;FONT color=#000000&gt; sender, &lt;/FONT&gt;&lt;FONT color=#008080&gt;EventArgs&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; e)&lt;BR&gt;&lt;/FONT&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;BR&gt;&lt;FONT size=2&gt;&amp;nbsp; Thread&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt; t2 = &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT color=#008080&gt;Thread&lt;/FONT&gt;(&lt;FONT color=#0000ff&gt;delegate&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008080&gt;MessageBox&lt;/FONT&gt;.Show(&lt;FONT color=#800000&gt;"Thread has started"&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;});&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; t2.Start();&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Tahoma size=2&gt;Anonymous methods are usefull when only a delegate will suffice, preventing us from polluting our class definition with small methods that are used only once.&lt;BR&gt;&lt;BR&gt;Same thing with Thread initialization but with parameters:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#008080&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;
&lt;P&gt;&lt;FONT size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;void&lt;/FONT&gt;&lt;FONT color=#000000&gt; button1_Click(&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;object&lt;/FONT&gt;&lt;FONT color=#000000&gt; sender, &lt;/FONT&gt;&lt;FONT color=#008080&gt;EventArgs&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; e)&lt;BR&gt;&lt;/FONT&gt;{&lt;BR&gt;&amp;nbsp; Thread&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt; t3 = &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT color=#008080&gt;Thread&lt;/FONT&gt;(&lt;FONT color=#0000ff&gt;delegate&lt;/FONT&gt;(&lt;FONT color=#0000ff&gt;object&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; o) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face="Courier New" color=#008080&gt;MessageBox&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;.Show(o.ToString());&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp; t3.Start(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;"Thread has started with parameters"&lt;/FONT&gt;);&lt;BR&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face=Tahoma size=2&gt;PS: If you still want to have methods instead of anonymous methods, you can use this shorter sentence in C# 2.0:&lt;BR&gt;&lt;FONT color=#008080 size=2&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;Thread&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt; t = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Thread&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;Method);&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;t.Start();&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Tahoma&gt;This is known as &lt;STRONG&gt;delegate inference&lt;/STRONG&gt;. it permits you to make a direct assigment of a method name to a delegate and the compiler can infer it.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt; &lt;img src="http://geekswithblogs.net/bbenbachir/aggbug/92670.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brahim Benbachir</dc:creator>
            <guid>http://geekswithblogs.net/bbenbachir/archive/2006/09/29/92670.aspx</guid>
            <pubDate>Fri, 29 Sep 2006 15:44:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/bbenbachir/comments/92670.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/bbenbachir/archive/2006/09/29/92670.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/bbenbachir/comments/commentRss/92670.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/bbenbachir/services/trackbacks/92670.aspx</trackback:ping>
        </item>
        <item>
            <title>Unpacking...</title>
            <category>Various</category>
            <link>http://geekswithblogs.net/bbenbachir/archive/2006/09/28/92531.aspx</link>
            <description>&lt;P&gt;Hi everyone,&lt;BR&gt;&lt;BR&gt;I'm starting a new blog here. You can have access to my old blog at this &lt;A href="http://www.dotnetjunkies.com/WebLog/bbenbachir"&gt;place&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;Regards&lt;/P&gt; &lt;img src="http://geekswithblogs.net/bbenbachir/aggbug/92531.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brahim Benbachir</dc:creator>
            <guid>http://geekswithblogs.net/bbenbachir/archive/2006/09/28/92531.aspx</guid>
            <pubDate>Thu, 28 Sep 2006 16:18:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/bbenbachir/comments/92531.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/bbenbachir/archive/2006/09/28/92531.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/bbenbachir/comments/commentRss/92531.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/bbenbachir/services/trackbacks/92531.aspx</trackback:ping>
        </item>
    </channel>
</rss>
