<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Visual C#.it</title>
	
	<link>http://visualcsharp.it</link>
	<description>La comunità italiana del linguaggio C#</description>
	<lastBuildDate>Thu, 23 Jul 2009 02:57:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/visualcsharp" /><feedburner:info uri="visualcsharp" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Gestalt mette Ruby, Python e XAML nel browser</title>
		<link>http://feedproxy.google.com/~r/visualcsharp/~3/l-hepXVFL08/</link>
		<comments>http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 02:19:38 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[Altri linguaggi]]></category>
		<category><![CDATA[DLR]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[gestalt]]></category>
		<category><![CDATA[ironpython]]></category>
		<category><![CDATA[IronRuby]]></category>
		<category><![CDATA[xaml]]></category>

		<guid isPermaLink="false">http://visualcsharp.it/?p=40</guid>
		<description><![CDATA[JavaScript è senza dubbio il linguaggio di programmazione più comune per lo sviluppo client-side di siti web. Grazie a Gestalt, una libreria open source, sarà ora possibile utilizzare anche linguaggi dinamici come Ruby e Python (e persino XAML). Dietro le quinte Gestalt sfrutta il Dynamic Language Runtime (DLR) di Silverlight, IronRuby e IronPython (le implementazioni [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/images/gestalt.gif" alt="Gestalt" align="right" />JavaScript è senza dubbio il linguaggio di programmazione più comune per lo sviluppo client-side di siti web. Grazie a <a href="http://visitmix.com/Labs/gestalt/">Gestalt</a>, una libreria open source, sarà ora possibile utilizzare anche linguaggi dinamici come Ruby e Python (e persino XAML). Dietro le quinte Gestalt sfrutta il Dynamic Language Runtime (DLR) di Silverlight, IronRuby e IronPython (le implementazioni .NET di Ruby e Python).</p>
<p>E l&#8217;innovazione apportata dai MIX Online Labs non è limitata a Windows. La libreria può essere infatti usata anche su sistemi Linux/Mac OS X, grazie all&#8217;implementazione open source di Silverlight, chiamata <a href="http://mono-project.com/Moonlight">Moonlight</a>.</p>
<p>Per i più curiosi, questo è l&#8217;Hello, World! in Ruby:</p>
<div class="highlight">
<pre><span class="nt">&lt;html&gt;</span>
<span class="nt">&lt;head&gt;</span>
  <span class="nt">&lt;script </span><span class="na">src=</span><span class="s">&quot;js/jquery.js&quot;</span> <span class="na">type=</span><span class="s">&quot;text/javascript&quot;</span><span class="nt">&gt;&lt;/script&gt;</span>
  <span class="nt">&lt;script </span><span class="na">src=</span><span class="s">&quot;js/gestalt.js&quot;</span> <span class="na">type=</span><span class="s">&quot;text/javascript&quot;</span><span class="nt">&gt;&lt;/script&gt;</span>
<span class="nt">&lt;/head&gt;</span>
<span class="nt">&lt;body&gt;</span>

<span class="nt">&lt;input</span> <span class="na">id=</span><span class="s">&quot;say_hello&quot;</span> <span class="na">type=</span><span class="s">&quot;button&quot;</span> <span class="na">value=</span><span class="s">&quot;Say, Hello!&quot;</span> <span class="nt">/&gt;</span>

<span class="nt">&lt;script </span><span class="na">language=</span><span class="s">&quot;ruby&quot;</span><span class="nt">&gt;</span>
<span class="nb">document</span><span class="p">.</span><span class="nx">say_hello</span><span class="p">.</span><span class="nx">onclick</span> <span class="k">do</span> <span class="o">|</span><span class="nx">s</span><span class="o">,</span><span class="nx">e</span><span class="o">|</span>
  <span class="nb">window</span><span class="p">.</span><span class="nx">alert</span> <span class="s2">&quot;Hello, World!&quot;</span>
<span class="nx">end</span>
<span class="nt">&lt;/script&gt;</span>
<span class="nt">&lt;/body&gt;</span>
<span class="nt">&lt;/html&gt;</span>
</pre>
</div>
<p>E in Python:</p>
<div class="highlight">
<pre><span class="nt">&lt;html&gt;</span>
<span class="nt">&lt;head&gt;</span>
  <span class="nt">&lt;script </span><span class="na">src=</span><span class="s">&quot;js/jquery.js&quot;</span> <span class="na">type=</span><span class="s">&quot;text/javascript&quot;</span><span class="nt">&gt;&lt;/script&gt;</span>
  <span class="nt">&lt;script </span><span class="na">src=</span><span class="s">&quot;js/gestalt.js&quot;</span> <span class="na">type=</span><span class="s">&quot;text/javascript&quot;</span><span class="nt">&gt;&lt;/script&gt;</span>
<span class="nt">&lt;/head&gt;</span>
<span class="nt">&lt;body&gt;</span>

<span class="nt">&lt;button</span> <span class="na">id=</span><span class="s">&quot;say_hello&quot;</span><span class="nt">&gt;</span>Say, Hello!<span class="nt">&lt;/button&gt;</span>

<span class="nt">&lt;script </span><span class="na">language=</span><span class="s">&quot;python&quot;</span><span class="nt">&gt;</span>
<span class="nx">def</span> <span class="nx">OnClick</span><span class="p">(</span><span class="nx">s</span><span class="o">,</span><span class="nx">e</span><span class="p">)</span><span class="o">:</span>
  <span class="nb">document</span><span class="p">.</span><span class="nx">say_hello</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">&quot;Hello, World!&quot;</span>

<span class="nb">document</span><span class="p">.</span><span class="nx">say_hello</span><span class="p">.</span><span class="nx">AttachEvent</span><span class="p">(</span><span class="s2">&quot;onclick&quot;</span><span class="o">,</span>
                   <span class="nx">EventHandler</span><span class="p">[</span><span class="nx">HtmlEventArgs</span><span class="p">](</span><span class="nx">OnClick</span><span class="p">))</span>
<span class="nt">&lt;/script&gt;</span>
<span class="nt">&lt;/body&gt;</span>
<span class="nt">&lt;/html&gt;</span>
</pre>
</div>
<p>Non perdetevi anche la <a href="http://visitmix.com/labs/gestalt/samples/">lista di esempi</a> per vedere di cosa è capace questa libreria. Personalmente dubito che sostituirà JavaScript per la magigor parte degli sviluppatori, anche solo nel mondo .NET, ma apre certamente delle prospettive interessanti. Voi cosa ne pensate?</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Condivi questo articolo:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/" rel="nofollow" title="Aggiungi a&nbsp;Bloglines"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Aggiungi a&nbsp;Bloglines" alt="Aggiungi a&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/&amp;submitHeadline=Gestalt+mette+Ruby%2C+Python+e+XAML+nel+browser&amp;submitSummary=" rel="nofollow" title="Aggiungi a&nbsp;Buzz"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/buzz.png" title="Aggiungi a&nbsp;Buzz" alt="Aggiungi a&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/&amp;title=Gestalt+mette+Ruby%2C+Python+e+XAML+nel+browser" rel="nofollow" title="Aggiungi a&nbsp;Del.icio.us"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/delicious.png" title="Aggiungi a&nbsp;Del.icio.us" alt="Aggiungi a&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/&amp;title=Gestalt+mette+Ruby%2C+Python+e+XAML+nel+browser" rel="nofollow" title="Aggiungi a&nbsp;digg"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/digg.png" title="Aggiungi a&nbsp;digg" alt="Aggiungi a&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/&amp;title=Gestalt+mette+Ruby%2C+Python+e+XAML+nel+browser" rel="nofollow" title="Aggiungi a&nbsp;DotNetKicks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Aggiungi a&nbsp;DotNetKicks" alt="Aggiungi a&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Gestalt+mette+Ruby%2C+Python+e+XAML+nel+browser&amp;url=http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/&amp;title=Gestalt+mette+Ruby%2C+Python+e+XAML+nel+browser" rel="nofollow" title="Aggiungi a&nbsp;DZone"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dzone.png" title="Aggiungi a&nbsp;DZone" alt="Aggiungi a&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/" rel="nofollow" title="Aggiungi a&nbsp;Facebook"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/facebook.png" title="Aggiungi a&nbsp;Facebook" alt="Aggiungi a&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/&amp;title=Gestalt+mette+Ruby%2C+Python+e+XAML+nel+browser" rel="nofollow" title="Aggiungi a&nbsp;Google Bookmarks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/google.png" title="Aggiungi a&nbsp;Google Bookmarks" alt="Aggiungi a&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/&amp;title=Gestalt+mette+Ruby%2C+Python+e+XAML+nel+browser" rel="nofollow" title="Aggiungi a&nbsp;reddit"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/reddit.png" title="Aggiungi a&nbsp;reddit" alt="Aggiungi a&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/&amp;title=Gestalt+mette+Ruby%2C+Python+e+XAML+nel+browser" rel="nofollow" title="Aggiungi a&nbsp;Slashdot"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Aggiungi a&nbsp;Slashdot" alt="Aggiungi a&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/&amp;title=Gestalt+mette+Ruby%2C+Python+e+XAML+nel+browser" rel="nofollow" title="Aggiungi a&nbsp;Stumble Upon"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Aggiungi a&nbsp;Stumble Upon" alt="Aggiungi a&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/" rel="nofollow" title="Aggiungi a&nbsp;Squidoo"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Aggiungi a&nbsp;Squidoo" alt="Aggiungi a&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/" rel="nofollow" title="Aggiungi a&nbsp;SphereIt"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Aggiungi a&nbsp;SphereIt" alt="Aggiungi a&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/" rel="nofollow" title="Aggiungi a&nbsp;Technorati"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/technorati.png" title="Aggiungi a&nbsp;Technorati" alt="Aggiungi a&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Gestalt+mette+Ruby%2C+Python+e+XAML+nel+browser+@+http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/" rel="nofollow" title="Aggiungi a&nbsp;Twitter"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/twitter.png" title="Aggiungi a&nbsp;Twitter" alt="Aggiungi a&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/&amp;t=Gestalt+mette+Ruby%2C+Python+e+XAML+nel+browser" rel="nofollow" title="Aggiungi a&nbsp;Yahoo My Web"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Aggiungi a&nbsp;Yahoo My Web" alt="Aggiungi a&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<img src="http://feeds.feedburner.com/~r/visualcsharp/~4/l-hepXVFL08" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://visualcsharp.it/2009/07/23/gestalt-mette-ruby-python-e-xaml-nel-browser/</feedburner:origLink></item>
		<item>
		<title>Microsoft rilascia Silverlight 3</title>
		<link>http://feedproxy.google.com/~r/visualcsharp/~3/842bpPk2EpQ/</link>
		<comments>http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 16:33:07 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://visualcsharp.it/?p=33</guid>
		<description><![CDATA[Dopo due anni dal primo rilascio, Microsoft ha finalmente rilasciato la versione finale di Silverlight 3. Questa edizione include una serie di miglioramenti e novità, sufficienti a far preoccupare Adobe. In particolare spiccano il migliorato supporto per codec audio e video, risoluzioni HD, il 3D e l&#8217;accelerazione hardware, e l&#8217;abilità di far girare le applicazioni [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/images/silverlight.png" alt="Silverlight 3" align="right" />Dopo due anni dal primo rilascio, Microsoft ha finalmente rilasciato la versione finale di Silverlight 3. Questa edizione include una serie di miglioramenti e novità, sufficienti a far preoccupare Adobe. In particolare spiccano il migliorato supporto per codec audio e video, risoluzioni HD, il 3D e l&#8217;accelerazione hardware, e l&#8217;abilità di far girare le applicazioni in modo offline, al di fuori del browser, in maniera analoga all&#8217;accopiata Adobe Flex/Air.</p>
<p>Per iniziare a studiare l&#8217;argomento, ecco alcuni link utili:</p>
<ul>
<li><a href="http://silverlight.net/getstarted/silverlight3/default.aspx">Le novità di Silverlight 3</a>.</li>
<li>I <a href="http://silverlight.net/quickstarts/">QuickStart</a> di Silverlight 3.</li>
<li>Una serie di <a href="http://silverlight.net/learn/videocat.aspx?cat=12">nuovi video</a> su Silverlight 3.</li>
<li>E per finire, la pagina ufficiale del &#8220;<a href="http://silverlight.net/GetStarted/">getting started</a>&#8220;.</li>
</ul>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Condivi questo articolo:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/" rel="nofollow" title="Aggiungi a&nbsp;Bloglines"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Aggiungi a&nbsp;Bloglines" alt="Aggiungi a&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/&amp;submitHeadline=Microsoft+rilascia+Silverlight+3&amp;submitSummary=" rel="nofollow" title="Aggiungi a&nbsp;Buzz"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/buzz.png" title="Aggiungi a&nbsp;Buzz" alt="Aggiungi a&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/&amp;title=Microsoft+rilascia+Silverlight+3" rel="nofollow" title="Aggiungi a&nbsp;Del.icio.us"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/delicious.png" title="Aggiungi a&nbsp;Del.icio.us" alt="Aggiungi a&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/&amp;title=Microsoft+rilascia+Silverlight+3" rel="nofollow" title="Aggiungi a&nbsp;digg"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/digg.png" title="Aggiungi a&nbsp;digg" alt="Aggiungi a&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/&amp;title=Microsoft+rilascia+Silverlight+3" rel="nofollow" title="Aggiungi a&nbsp;DotNetKicks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Aggiungi a&nbsp;DotNetKicks" alt="Aggiungi a&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Microsoft+rilascia+Silverlight+3&amp;url=http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/&amp;title=Microsoft+rilascia+Silverlight+3" rel="nofollow" title="Aggiungi a&nbsp;DZone"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dzone.png" title="Aggiungi a&nbsp;DZone" alt="Aggiungi a&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/" rel="nofollow" title="Aggiungi a&nbsp;Facebook"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/facebook.png" title="Aggiungi a&nbsp;Facebook" alt="Aggiungi a&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/&amp;title=Microsoft+rilascia+Silverlight+3" rel="nofollow" title="Aggiungi a&nbsp;Google Bookmarks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/google.png" title="Aggiungi a&nbsp;Google Bookmarks" alt="Aggiungi a&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/&amp;title=Microsoft+rilascia+Silverlight+3" rel="nofollow" title="Aggiungi a&nbsp;reddit"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/reddit.png" title="Aggiungi a&nbsp;reddit" alt="Aggiungi a&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/&amp;title=Microsoft+rilascia+Silverlight+3" rel="nofollow" title="Aggiungi a&nbsp;Slashdot"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Aggiungi a&nbsp;Slashdot" alt="Aggiungi a&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/&amp;title=Microsoft+rilascia+Silverlight+3" rel="nofollow" title="Aggiungi a&nbsp;Stumble Upon"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Aggiungi a&nbsp;Stumble Upon" alt="Aggiungi a&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/" rel="nofollow" title="Aggiungi a&nbsp;Squidoo"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Aggiungi a&nbsp;Squidoo" alt="Aggiungi a&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/" rel="nofollow" title="Aggiungi a&nbsp;SphereIt"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Aggiungi a&nbsp;SphereIt" alt="Aggiungi a&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/" rel="nofollow" title="Aggiungi a&nbsp;Technorati"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/technorati.png" title="Aggiungi a&nbsp;Technorati" alt="Aggiungi a&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Microsoft+rilascia+Silverlight+3+@+http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/" rel="nofollow" title="Aggiungi a&nbsp;Twitter"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/twitter.png" title="Aggiungi a&nbsp;Twitter" alt="Aggiungi a&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/&amp;t=Microsoft+rilascia+Silverlight+3" rel="nofollow" title="Aggiungi a&nbsp;Yahoo My Web"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Aggiungi a&nbsp;Yahoo My Web" alt="Aggiungi a&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<img src="http://feeds.feedburner.com/~r/visualcsharp/~4/842bpPk2EpQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://visualcsharp.it/2009/07/21/microsoft-rilascia-silverlight-3/</feedburner:origLink></item>
		<item>
		<title>CsharpRepl: la shell interattiva per C#</title>
		<link>http://feedproxy.google.com/~r/visualcsharp/~3/JBwWo4HBhQ4/</link>
		<comments>http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 15:50:47 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[CsharpRepl]]></category>
		<category><![CDATA[strumenti]]></category>

		<guid isPermaLink="false">http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/</guid>
		<description><![CDATA[Chi programma con linguaggi tipici del mondo Open Source, come Perl, Python, Ruby o Lisp, è abituato da anni ad utilizzare una shell interattiva per provare espressioni ed istruzioni al volo prima di inserirle all&#8217;interno di programmi più corposi. Nel caso di Python, il comando è python, mentre nel caso della versione ufficiale di Ruby [...]]]></description>
			<content:encoded><![CDATA[<p>Chi programma con linguaggi tipici del mondo Open Source, come Perl, Python, Ruby o Lisp, è abituato da anni ad utilizzare una shell interattiva per provare espressioni ed istruzioni al volo prima di inserirle all&#8217;interno di programmi più corposi. Nel caso di Python, il comando è <code>python</code>, mentre nel caso della versione ufficiale di Ruby è <code>irb</code>. Ad esempio, questa potrebbe essere una sessione in Ruby da parte di un principiante:</p>
<pre>
C:\>irb
>> my_string = "visualcsharp.it"
=> "visualcsharp.it"
>> my_string[0,12]
=> "visualcsharp"
>>
</pre>
<p>Questo tipo di shell non fa altro che leggere, valutare le espressioni, stamparne il risultato e poi cominciare da capo. Gli anglofoni direbbero che si tratta del cosiddetto read-eval-print loop (REPL).</p>
<p>C# è sempre stato un linguaggio più statico e rigido rispetto ai linguaggi sopracitati, e la mancanza di una funzione eval vera e propria ha fatto sì che per anni i programmatori C# non potessero avvalersi di uno strumento così utile come la shell interattiva. Gli sviluppatori del progetto Mono, port cross-platform del .NET framework, hanno deciso di cambiare lo status quo nella comunità C# introducendo CsharpRepl, un tool che mancava davvero dalla cassetta degli attrezzi dei dotnettari. Il tutto è possibile grazie ad un&#8217;opportuna modifica al compilatore, per fargli eseguire il codice generato invece di salvarlo in un file. Con CsharpRepl, sarà ora possibile eseguire snippet di codice senza dover compilare ed eseguire l&#8217;intero progetto:</p>
<pre name="code" language="c-sharp">
csharp> using System.IO;
csharp> from f in Directory.GetFiles ("/etc")
      >   let fi = new FileInfo (f)
      >   where fi.LastWriteTime > DateTime.Now-TimeSpan.FromDays(7) select f;
{ "/etc/adjtime", "/etc/asound.state", "/etc/mtab", "/etc/printcap", "/etc/resolv.conf" }
csharp>
</pre>
<p><a href="http://www.mono-project.com/CsharpRepl">La pagina del tool</a> ha maggiori informazioni su come installare e usare il comando <code>csharp</code> (che richiede Mono 2.2).</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Condivi questo articolo:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/" rel="nofollow" title="Aggiungi a&nbsp;Bloglines"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Aggiungi a&nbsp;Bloglines" alt="Aggiungi a&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/&amp;submitHeadline=CsharpRepl%3A+la+shell+interattiva+per+C%23&amp;submitSummary=" rel="nofollow" title="Aggiungi a&nbsp;Buzz"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/buzz.png" title="Aggiungi a&nbsp;Buzz" alt="Aggiungi a&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/&amp;title=CsharpRepl%3A+la+shell+interattiva+per+C%23" rel="nofollow" title="Aggiungi a&nbsp;Del.icio.us"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/delicious.png" title="Aggiungi a&nbsp;Del.icio.us" alt="Aggiungi a&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/&amp;title=CsharpRepl%3A+la+shell+interattiva+per+C%23" rel="nofollow" title="Aggiungi a&nbsp;digg"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/digg.png" title="Aggiungi a&nbsp;digg" alt="Aggiungi a&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/&amp;title=CsharpRepl%3A+la+shell+interattiva+per+C%23" rel="nofollow" title="Aggiungi a&nbsp;DotNetKicks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Aggiungi a&nbsp;DotNetKicks" alt="Aggiungi a&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=CsharpRepl%3A+la+shell+interattiva+per+C%23&amp;url=http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/&amp;title=CsharpRepl%3A+la+shell+interattiva+per+C%23" rel="nofollow" title="Aggiungi a&nbsp;DZone"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dzone.png" title="Aggiungi a&nbsp;DZone" alt="Aggiungi a&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/" rel="nofollow" title="Aggiungi a&nbsp;Facebook"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/facebook.png" title="Aggiungi a&nbsp;Facebook" alt="Aggiungi a&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/&amp;title=CsharpRepl%3A+la+shell+interattiva+per+C%23" rel="nofollow" title="Aggiungi a&nbsp;Google Bookmarks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/google.png" title="Aggiungi a&nbsp;Google Bookmarks" alt="Aggiungi a&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/&amp;title=CsharpRepl%3A+la+shell+interattiva+per+C%23" rel="nofollow" title="Aggiungi a&nbsp;reddit"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/reddit.png" title="Aggiungi a&nbsp;reddit" alt="Aggiungi a&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/&amp;title=CsharpRepl%3A+la+shell+interattiva+per+C%23" rel="nofollow" title="Aggiungi a&nbsp;Slashdot"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Aggiungi a&nbsp;Slashdot" alt="Aggiungi a&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/&amp;title=CsharpRepl%3A+la+shell+interattiva+per+C%23" rel="nofollow" title="Aggiungi a&nbsp;Stumble Upon"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Aggiungi a&nbsp;Stumble Upon" alt="Aggiungi a&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/" rel="nofollow" title="Aggiungi a&nbsp;Squidoo"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Aggiungi a&nbsp;Squidoo" alt="Aggiungi a&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/" rel="nofollow" title="Aggiungi a&nbsp;SphereIt"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Aggiungi a&nbsp;SphereIt" alt="Aggiungi a&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/" rel="nofollow" title="Aggiungi a&nbsp;Technorati"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/technorati.png" title="Aggiungi a&nbsp;Technorati" alt="Aggiungi a&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+CsharpRepl%3A+la+shell+interattiva+per+C%23+@+http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/" rel="nofollow" title="Aggiungi a&nbsp;Twitter"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/twitter.png" title="Aggiungi a&nbsp;Twitter" alt="Aggiungi a&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/&amp;t=CsharpRepl%3A+la+shell+interattiva+per+C%23" rel="nofollow" title="Aggiungi a&nbsp;Yahoo My Web"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Aggiungi a&nbsp;Yahoo My Web" alt="Aggiungi a&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<img src="http://feeds.feedburner.com/~r/visualcsharp/~4/JBwWo4HBhQ4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://visualcsharp.it/2008/09/11/csharprepl-la-shell-interattiva-per-c/</feedburner:origLink></item>
		<item>
		<title>Copia/Incolla in DataGridView</title>
		<link>http://feedproxy.google.com/~r/visualcsharp/~3/wuyaHwXknPw/</link>
		<comments>http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/#comments</comments>
		<pubDate>Sat, 10 May 2008 08:28:55 +0000</pubDate>
		<dc:creator>Emanuele Origgi</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Windows Forms]]></category>
		<category><![CDATA[ClipBoardCopyMode]]></category>
		<category><![CDATA[DataGridView]]></category>

		<guid isPermaLink="false">http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/</guid>
		<description><![CDATA[Spesso quando si sceglie di usare il controllo DataGridView è perchè non si vuole solo una rappresentazione tabellare dei dati, ma soprattutto perchè si voglione sfruttare funzioni che l’utente medio ritiene tipiche delle tabelle.
Una di queste funzioni è sicuramente il copia/incolla di interi record, funzione che non è presente nella classe DataGridView.
Ma questo non vuol [...]]]></description>
			<content:encoded><![CDATA[<p>Spesso quando si sceglie di usare il controllo DataGridView è perchè non si vuole solo una rappresentazione tabellare dei dati, ma soprattutto perchè si voglione sfruttare funzioni che l’utente medio ritiene tipiche delle tabelle.</p>
<p>Una di queste funzioni è sicuramente il copia/incolla di interi record, funzione che non è presente nella classe DataGridView.</p>
<p>Ma questo non vuol dire che non si possa implementare!<br />
<span id="more-24"></span></p>
<p>Prima di tutto dobbiamo impostare la proprietà ClipboardCopyMode del DataGridView:</p>
<pre name="code" class="c-sharp">
this.dataGridView.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
</pre>
<p>L’enumerazione DataGridViewClipboardCopyMode contiene quattro valori: con EnableWithoutHeaderText è possibile copiare negli Appunti i valori di testo delle celle selezionate. Il testo dell&#8217;intestazione non viene incluso.</p>
<p>Andiamo ora a implementare i metodi Copia e Incolla.<br />
Il metodo Copia è semplicissimo:</p>
<pre name="code" class="c-sharp">
private void Copia()
{
    Clipboard.SetDataObject(this.dataGridView.GetClipboardContent());
}
</pre>
<p>Con questo codice viene copiato nella Clipboard, attraverso il metodo static Clipboard.SetDataObject, i dati che tornano dal metodo GetClipboardContent() della classe DataGridView. Dati che vengono formattati in base al valore della proprietà ClipboardCopyMode.</p>
<p>Purtroppo il metodo Incolla non è così immediato:</p>
<pre name="code" class="c-sharp">
        private void Incolla()
        {
            char[] rowSplitter = { '\r', '\n' };
            char[] columnsSplitter = { '\t' };
            string[] campi;
            //Ottengo le informazioni contenute negli appunti
            string appunti = Clipboard.GetText();
            //Divido gli appunti in righe
            string[] righe = appunti.Split(rowSplitter, StringSplitOptions.RemoveEmptyEntries); 

            foreach (string str in righe)
            {
                //Divido la stringa in campi e aggiungo la riga del DataGridView
                campi = str.Split(columnsSplitter);
                if (campi.Length == 2)
                {
                    this.bindingSource.AddNew();
                    DataRowView rowView =
                            (DataRowView)this.bindingSource.Current; 

                    if (campi[3] == String.Empty)
                        rowView[5] = DBNull.Value;
                    else
                        rowView[5] = int.Parse(campi[3]); 

                    if (campi[4] == String.Empty)
                        rowView[4] = DBNull.Value;
                    else
                        rowView[4] = int.Parse(campi[4]);
                }
            }
        }
</pre>
<p>Il procedimento è però abbastanza semplice: prima di tutto otteniamo i dati presenti nella Clipboard attraverso il metodo statico Clipboard.GetText(). Quindi i dati così ottenuti vengono divisi prima in righe, splittandoli sui valori &#8216;\r&#8217; &#8216;\n&#8217;, e in seguito vengono splittati in colonne (\t). I dati così ottenuti vengono inseriti nel controllo DataGridView.</p>
<p>A questo punto resta da implementare solo il ContextMenu che conterrà i menu Copia e Incolla con i rispettivi eventi Click che richiamano i metodi Copia e Incolla.</p>
<p>Per fare questo si deve prima aggiungere un ContextMenu al progetto e poi associarlo al controllo DataGridView intercettando l’evento RowContextMenuStripNeeded del DataGridView stesso:</p>
<pre name="code" class="c-sharp">
        private void dataGridView_RowContextMenuStripNeeded(object sender, DataGridViewRowContextMenuStripNeededEventArgs e)
        {
            e.ContextMenuStrip = this.contextMenuCopiaIncolla;
        }</pre>
<p>Praticamente, ogni volta che si preme col tasto destro sul DataGridView, viene generato l’evento RowContextMenuStripNeeded che imposta la proprietà e.ContextMenuStrip sul contextMenu che contiene i menu Copia e Incolla.</p>
<p>Questo codice è solo un esempio. Il metodo Incolla si può adattare in base alle esigenze: per esempio si può valorizzare la chiave primaria se presente, oppure si può decidere di includere nella ClipBoard anche l&#8217;intestazione delle colonne e quindi incollare tutto in Excel.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Condivi questo articolo:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/" rel="nofollow" title="Aggiungi a&nbsp;Bloglines"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Aggiungi a&nbsp;Bloglines" alt="Aggiungi a&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/&amp;submitHeadline=Copia%2FIncolla+in+DataGridView&amp;submitSummary=" rel="nofollow" title="Aggiungi a&nbsp;Buzz"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/buzz.png" title="Aggiungi a&nbsp;Buzz" alt="Aggiungi a&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/&amp;title=Copia%2FIncolla+in+DataGridView" rel="nofollow" title="Aggiungi a&nbsp;Del.icio.us"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/delicious.png" title="Aggiungi a&nbsp;Del.icio.us" alt="Aggiungi a&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/&amp;title=Copia%2FIncolla+in+DataGridView" rel="nofollow" title="Aggiungi a&nbsp;digg"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/digg.png" title="Aggiungi a&nbsp;digg" alt="Aggiungi a&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/&amp;title=Copia%2FIncolla+in+DataGridView" rel="nofollow" title="Aggiungi a&nbsp;DotNetKicks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Aggiungi a&nbsp;DotNetKicks" alt="Aggiungi a&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Copia%2FIncolla+in+DataGridView&amp;url=http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/&amp;title=Copia%2FIncolla+in+DataGridView" rel="nofollow" title="Aggiungi a&nbsp;DZone"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dzone.png" title="Aggiungi a&nbsp;DZone" alt="Aggiungi a&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/" rel="nofollow" title="Aggiungi a&nbsp;Facebook"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/facebook.png" title="Aggiungi a&nbsp;Facebook" alt="Aggiungi a&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/&amp;title=Copia%2FIncolla+in+DataGridView" rel="nofollow" title="Aggiungi a&nbsp;Google Bookmarks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/google.png" title="Aggiungi a&nbsp;Google Bookmarks" alt="Aggiungi a&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/&amp;title=Copia%2FIncolla+in+DataGridView" rel="nofollow" title="Aggiungi a&nbsp;reddit"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/reddit.png" title="Aggiungi a&nbsp;reddit" alt="Aggiungi a&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/&amp;title=Copia%2FIncolla+in+DataGridView" rel="nofollow" title="Aggiungi a&nbsp;Slashdot"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Aggiungi a&nbsp;Slashdot" alt="Aggiungi a&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/&amp;title=Copia%2FIncolla+in+DataGridView" rel="nofollow" title="Aggiungi a&nbsp;Stumble Upon"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Aggiungi a&nbsp;Stumble Upon" alt="Aggiungi a&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/" rel="nofollow" title="Aggiungi a&nbsp;Squidoo"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Aggiungi a&nbsp;Squidoo" alt="Aggiungi a&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/" rel="nofollow" title="Aggiungi a&nbsp;SphereIt"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Aggiungi a&nbsp;SphereIt" alt="Aggiungi a&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/" rel="nofollow" title="Aggiungi a&nbsp;Technorati"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/technorati.png" title="Aggiungi a&nbsp;Technorati" alt="Aggiungi a&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Copia%2FIncolla+in+DataGridView+@+http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/" rel="nofollow" title="Aggiungi a&nbsp;Twitter"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/twitter.png" title="Aggiungi a&nbsp;Twitter" alt="Aggiungi a&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/&amp;t=Copia%2FIncolla+in+DataGridView" rel="nofollow" title="Aggiungi a&nbsp;Yahoo My Web"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Aggiungi a&nbsp;Yahoo My Web" alt="Aggiungi a&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<img src="http://feeds.feedburner.com/~r/visualcsharp/~4/wuyaHwXknPw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://visualcsharp.it/2008/05/10/copiaincolla-in-datagridview/</feedburner:origLink></item>
		<item>
		<title>Presentazione di John Lam circa IronRuby e DLR</title>
		<link>http://feedproxy.google.com/~r/visualcsharp/~3/TC8H4D2Xklc/</link>
		<comments>http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 03:31:32 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[Altri linguaggi]]></category>
		<category><![CDATA[DLR]]></category>
		<category><![CDATA[IronRuby]]></category>
		<category><![CDATA[John Lam]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/</guid>
		<description><![CDATA[IronRuby è un&#8217;implementazione, ancora incompleta, di Ruby 1.8 per la piattaforma .NET. Il progetto si basa sul cosiddetto Dynamic Language Runtime (DLR), creato appositamente per agevolare lo sviluppo di linguaggi dinamici come Ruby e Python, nel contesto di .NET.
Durante l&#8217;evento ALT.NET Open Spaces in Seattle, John Lam, leader del team di sviluppo di IronRuby, ha [...]]]></description>
			<content:encoded><![CDATA[<p>IronRuby è un&#8217;implementazione, ancora incompleta, di Ruby 1.8 per la piattaforma .NET. Il progetto si basa sul cosiddetto Dynamic Language Runtime (DLR), creato appositamente per agevolare lo sviluppo di linguaggi dinamici come Ruby e Python, nel contesto di .NET.</p>
<p>Durante l&#8217;evento ALT.NET Open Spaces in Seattle, John Lam, leader del team di sviluppo di IronRuby, ha aggiornato la comunità circa lo stato del progetto e aggiunto molti dettagli tecnici riguardanti l&#8217;architettura del DLR.</p>
<p>Per gli interessati che non hanno avuto modo di partecipare, è finalmente online <a href="http://www.viddler.com/explore/laribee/videos/4/">il video della presentazione</a> (in inglese).</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Condivi questo articolo:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/" rel="nofollow" title="Aggiungi a&nbsp;Bloglines"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Aggiungi a&nbsp;Bloglines" alt="Aggiungi a&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/&amp;submitHeadline=Presentazione+di+John+Lam+circa+IronRuby+e+DLR&amp;submitSummary=" rel="nofollow" title="Aggiungi a&nbsp;Buzz"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/buzz.png" title="Aggiungi a&nbsp;Buzz" alt="Aggiungi a&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/&amp;title=Presentazione+di+John+Lam+circa+IronRuby+e+DLR" rel="nofollow" title="Aggiungi a&nbsp;Del.icio.us"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/delicious.png" title="Aggiungi a&nbsp;Del.icio.us" alt="Aggiungi a&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/&amp;title=Presentazione+di+John+Lam+circa+IronRuby+e+DLR" rel="nofollow" title="Aggiungi a&nbsp;digg"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/digg.png" title="Aggiungi a&nbsp;digg" alt="Aggiungi a&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/&amp;title=Presentazione+di+John+Lam+circa+IronRuby+e+DLR" rel="nofollow" title="Aggiungi a&nbsp;DotNetKicks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Aggiungi a&nbsp;DotNetKicks" alt="Aggiungi a&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Presentazione+di+John+Lam+circa+IronRuby+e+DLR&amp;url=http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/&amp;title=Presentazione+di+John+Lam+circa+IronRuby+e+DLR" rel="nofollow" title="Aggiungi a&nbsp;DZone"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dzone.png" title="Aggiungi a&nbsp;DZone" alt="Aggiungi a&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/" rel="nofollow" title="Aggiungi a&nbsp;Facebook"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/facebook.png" title="Aggiungi a&nbsp;Facebook" alt="Aggiungi a&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/&amp;title=Presentazione+di+John+Lam+circa+IronRuby+e+DLR" rel="nofollow" title="Aggiungi a&nbsp;Google Bookmarks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/google.png" title="Aggiungi a&nbsp;Google Bookmarks" alt="Aggiungi a&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/&amp;title=Presentazione+di+John+Lam+circa+IronRuby+e+DLR" rel="nofollow" title="Aggiungi a&nbsp;reddit"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/reddit.png" title="Aggiungi a&nbsp;reddit" alt="Aggiungi a&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/&amp;title=Presentazione+di+John+Lam+circa+IronRuby+e+DLR" rel="nofollow" title="Aggiungi a&nbsp;Slashdot"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Aggiungi a&nbsp;Slashdot" alt="Aggiungi a&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/&amp;title=Presentazione+di+John+Lam+circa+IronRuby+e+DLR" rel="nofollow" title="Aggiungi a&nbsp;Stumble Upon"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Aggiungi a&nbsp;Stumble Upon" alt="Aggiungi a&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/" rel="nofollow" title="Aggiungi a&nbsp;Squidoo"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Aggiungi a&nbsp;Squidoo" alt="Aggiungi a&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/" rel="nofollow" title="Aggiungi a&nbsp;SphereIt"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Aggiungi a&nbsp;SphereIt" alt="Aggiungi a&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/" rel="nofollow" title="Aggiungi a&nbsp;Technorati"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/technorati.png" title="Aggiungi a&nbsp;Technorati" alt="Aggiungi a&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Presentazione+di+John+Lam+circa+IronRuby+e+DLR+@+http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/" rel="nofollow" title="Aggiungi a&nbsp;Twitter"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/twitter.png" title="Aggiungi a&nbsp;Twitter" alt="Aggiungi a&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/&amp;t=Presentazione+di+John+Lam+circa+IronRuby+e+DLR" rel="nofollow" title="Aggiungi a&nbsp;Yahoo My Web"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Aggiungi a&nbsp;Yahoo My Web" alt="Aggiungi a&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<img src="http://feeds.feedburner.com/~r/visualcsharp/~4/TC8H4D2Xklc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://visualcsharp.it/2008/04/25/presentazione-di-john-lam-circa-ironruby-e-dlr/</feedburner:origLink></item>
		<item>
		<title>101 esempi di LINQ</title>
		<link>http://feedproxy.google.com/~r/visualcsharp/~3/1TnX_GKx2Rg/</link>
		<comments>http://visualcsharp.it/2008/04/22/101-esempi-di-linq/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 14:25:50 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[.Net 3.5]]></category>
		<category><![CDATA[C# 3.0]]></category>

		<guid isPermaLink="false">http://visualcsharp.it/2008/04/22/101-esempi-di-linq/</guid>
		<description><![CDATA[LINQ, particolarmente LINQ to Objects, segna la svolta funzionale di C# 3.0 e del framework .NET 3.5. L&#8217;utilizzo di LINQ non è obbligatorio per il programmatore .NET, ma il guadagno in termini di espressività la rendono decisamente una scelta raccomandata.
Per coloro che non lo hanno ancora visto, Microsoft ha da tempo pubblicato 101 esempi pratici [...]]]></description>
			<content:encoded><![CDATA[<p>LINQ, particolarmente LINQ to Objects, segna la svolta funzionale di C# 3.0 e del framework .NET 3.5. L&#8217;utilizzo di LINQ non è obbligatorio per il programmatore .NET, ma il guadagno in termini di espressività la rendono decisamente una scelta raccomandata.</p>
<p>Per coloro che non lo hanno ancora visto, Microsoft ha da tempo pubblicato <a href="http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx">101 esempi pratici per l&#8217;utilizzo di LINQ</a>. Il sito è quello internazionale, per cui in inglese, ma gli esempi sono sostanzialmente snippet di codice, per cui del tutto comprensibili anche per i lettori meno angolofoni.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Condivi questo articolo:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://visualcsharp.it/2008/04/22/101-esempi-di-linq/" rel="nofollow" title="Aggiungi a&nbsp;Bloglines"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Aggiungi a&nbsp;Bloglines" alt="Aggiungi a&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://visualcsharp.it/2008/04/22/101-esempi-di-linq/&amp;submitHeadline=101+esempi+di+LINQ&amp;submitSummary=" rel="nofollow" title="Aggiungi a&nbsp;Buzz"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/buzz.png" title="Aggiungi a&nbsp;Buzz" alt="Aggiungi a&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://visualcsharp.it/2008/04/22/101-esempi-di-linq/&amp;title=101+esempi+di+LINQ" rel="nofollow" title="Aggiungi a&nbsp;Del.icio.us"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/delicious.png" title="Aggiungi a&nbsp;Del.icio.us" alt="Aggiungi a&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://visualcsharp.it/2008/04/22/101-esempi-di-linq/&amp;title=101+esempi+di+LINQ" rel="nofollow" title="Aggiungi a&nbsp;digg"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/digg.png" title="Aggiungi a&nbsp;digg" alt="Aggiungi a&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://visualcsharp.it/2008/04/22/101-esempi-di-linq/&amp;title=101+esempi+di+LINQ" rel="nofollow" title="Aggiungi a&nbsp;DotNetKicks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Aggiungi a&nbsp;DotNetKicks" alt="Aggiungi a&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=101+esempi+di+LINQ&amp;url=http://visualcsharp.it/2008/04/22/101-esempi-di-linq/&amp;title=101+esempi+di+LINQ" rel="nofollow" title="Aggiungi a&nbsp;DZone"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dzone.png" title="Aggiungi a&nbsp;DZone" alt="Aggiungi a&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://visualcsharp.it/2008/04/22/101-esempi-di-linq/" rel="nofollow" title="Aggiungi a&nbsp;Facebook"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/facebook.png" title="Aggiungi a&nbsp;Facebook" alt="Aggiungi a&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://visualcsharp.it/2008/04/22/101-esempi-di-linq/&amp;title=101+esempi+di+LINQ" rel="nofollow" title="Aggiungi a&nbsp;Google Bookmarks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/google.png" title="Aggiungi a&nbsp;Google Bookmarks" alt="Aggiungi a&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://visualcsharp.it/2008/04/22/101-esempi-di-linq/&amp;title=101+esempi+di+LINQ" rel="nofollow" title="Aggiungi a&nbsp;reddit"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/reddit.png" title="Aggiungi a&nbsp;reddit" alt="Aggiungi a&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://visualcsharp.it/2008/04/22/101-esempi-di-linq/&amp;title=101+esempi+di+LINQ" rel="nofollow" title="Aggiungi a&nbsp;Slashdot"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Aggiungi a&nbsp;Slashdot" alt="Aggiungi a&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://visualcsharp.it/2008/04/22/101-esempi-di-linq/&amp;title=101+esempi+di+LINQ" rel="nofollow" title="Aggiungi a&nbsp;Stumble Upon"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Aggiungi a&nbsp;Stumble Upon" alt="Aggiungi a&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http://visualcsharp.it/2008/04/22/101-esempi-di-linq/" rel="nofollow" title="Aggiungi a&nbsp;Squidoo"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Aggiungi a&nbsp;Squidoo" alt="Aggiungi a&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http://visualcsharp.it/2008/04/22/101-esempi-di-linq/" rel="nofollow" title="Aggiungi a&nbsp;SphereIt"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Aggiungi a&nbsp;SphereIt" alt="Aggiungi a&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://visualcsharp.it/2008/04/22/101-esempi-di-linq/" rel="nofollow" title="Aggiungi a&nbsp;Technorati"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/technorati.png" title="Aggiungi a&nbsp;Technorati" alt="Aggiungi a&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+101+esempi+di+LINQ+@+http://visualcsharp.it/2008/04/22/101-esempi-di-linq/" rel="nofollow" title="Aggiungi a&nbsp;Twitter"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/twitter.png" title="Aggiungi a&nbsp;Twitter" alt="Aggiungi a&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://visualcsharp.it/2008/04/22/101-esempi-di-linq/&amp;t=101+esempi+di+LINQ" rel="nofollow" title="Aggiungi a&nbsp;Yahoo My Web"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Aggiungi a&nbsp;Yahoo My Web" alt="Aggiungi a&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<img src="http://feeds.feedburner.com/~r/visualcsharp/~4/1TnX_GKx2Rg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://visualcsharp.it/2008/04/22/101-esempi-di-linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://visualcsharp.it/2008/04/22/101-esempi-di-linq/</feedburner:origLink></item>
		<item>
		<title>C# 3.0: Extension Methods</title>
		<link>http://feedproxy.google.com/~r/visualcsharp/~3/gPzF8Dta8Ao/</link>
		<comments>http://visualcsharp.it/2008/02/20/c-30-extension-methods/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 21:13:02 +0000</pubDate>
		<dc:creator>Emanuele Origgi</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C# 3.0]]></category>
		<category><![CDATA[Extension Methods]]></category>

		<guid isPermaLink="false">http://visualcsharp.it/2008/02/20/c-30-extension-methods/</guid>
		<description><![CDATA[Gli Extension Methods permettono di aggiungere metodi a tipi già definiti, senza creare un nuovo tipo derivato. Questo vale sia per le classi del Framework sia ovviamente per le classi da noi create e sono una forma molto speciale di metodi statici, che vengono però chiamati come se fossero a tutti gli effetti dei metodi [...]]]></description>
			<content:encoded><![CDATA[<p>Gli Extension Methods permettono di aggiungere metodi a tipi già definiti, senza creare un nuovo tipo derivato. Questo vale sia per le classi del Framework sia ovviamente per le classi da noi create e sono una forma molto speciale di metodi statici, che vengono però chiamati come se fossero a tutti gli effetti dei metodi di istanza.<br />
<span id="more-21"></span><br />
Un esempio potrebbe essere quello di “estendere” la classe String, aggiungendo un nostro metodo ContaVocali. </p>
<pre name="code" class="c-sharp">
namespace Extensions
{
    static class StringExtension
    {
        /// <summary>
        /// Conta quante vocali sono presenti.
        /// </summary>
        public static int ContaVocali(this String str)
        {
            // Codice che conta quante vocali sono presenti in str...
        }
    }
}
</pre>
<p>All’interno del namespace Extensions è presenta una classe statica StringExtension con un metodo static ContaVocali. Questo metodo è esattamente come un normalissimo metodo statico, con una caratteristica in più: la presenza della keyword this al primo parametro. E’ infatti grazie a questo parametro che viene indicato al compliatore di C# che tipo si vuole estendere, in questo caso la classe String.</p>
<p>Ora si può chiamare il metodo ContaVocali come se fosse un normalissimo metodo di istanza di String:</p>
<pre name="code" class="c-sharp">
using Extensions;
static void Main()
{
    string prova = “ciao”;
    int numVocali = prova.ContaVocali();
}
</pre>
<p>Da notare che ho fatto riferimento al namespace nel quale è contenuto l’extension method, altrimenti non sarebbe stato visibile.</p>
<p>Altra nota da sottolienare è che gli extensions methods non violano il concetto di incapsulamento perché, essendo in realta dei metodi statici, non possono vedere i campi privati di istanza della classe che estendono.</p>
<p>Questa nuova funzionalitàdi C# può sembrare un pò inutile, ma non si deve andare tanto lontano per trovare un loro utilizzo pratico: LINQ si basa fortemente sugli Extensions Methods!<br />
L’importante è saperli usare con moderazione e dove strettamente necessario, ricordando che il miglior modo per estendere un tipo è quello di usare l’ereditarietà.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Condivi questo articolo:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://visualcsharp.it/2008/02/20/c-30-extension-methods/" rel="nofollow" title="Aggiungi a&nbsp;Bloglines"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Aggiungi a&nbsp;Bloglines" alt="Aggiungi a&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://visualcsharp.it/2008/02/20/c-30-extension-methods/&amp;submitHeadline=C%23+3.0%3A+Extension+Methods&amp;submitSummary=" rel="nofollow" title="Aggiungi a&nbsp;Buzz"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/buzz.png" title="Aggiungi a&nbsp;Buzz" alt="Aggiungi a&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://visualcsharp.it/2008/02/20/c-30-extension-methods/&amp;title=C%23+3.0%3A+Extension+Methods" rel="nofollow" title="Aggiungi a&nbsp;Del.icio.us"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/delicious.png" title="Aggiungi a&nbsp;Del.icio.us" alt="Aggiungi a&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://visualcsharp.it/2008/02/20/c-30-extension-methods/&amp;title=C%23+3.0%3A+Extension+Methods" rel="nofollow" title="Aggiungi a&nbsp;digg"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/digg.png" title="Aggiungi a&nbsp;digg" alt="Aggiungi a&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://visualcsharp.it/2008/02/20/c-30-extension-methods/&amp;title=C%23+3.0%3A+Extension+Methods" rel="nofollow" title="Aggiungi a&nbsp;DotNetKicks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Aggiungi a&nbsp;DotNetKicks" alt="Aggiungi a&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=C%23+3.0%3A+Extension+Methods&amp;url=http://visualcsharp.it/2008/02/20/c-30-extension-methods/&amp;title=C%23+3.0%3A+Extension+Methods" rel="nofollow" title="Aggiungi a&nbsp;DZone"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dzone.png" title="Aggiungi a&nbsp;DZone" alt="Aggiungi a&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://visualcsharp.it/2008/02/20/c-30-extension-methods/" rel="nofollow" title="Aggiungi a&nbsp;Facebook"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/facebook.png" title="Aggiungi a&nbsp;Facebook" alt="Aggiungi a&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://visualcsharp.it/2008/02/20/c-30-extension-methods/&amp;title=C%23+3.0%3A+Extension+Methods" rel="nofollow" title="Aggiungi a&nbsp;Google Bookmarks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/google.png" title="Aggiungi a&nbsp;Google Bookmarks" alt="Aggiungi a&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://visualcsharp.it/2008/02/20/c-30-extension-methods/&amp;title=C%23+3.0%3A+Extension+Methods" rel="nofollow" title="Aggiungi a&nbsp;reddit"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/reddit.png" title="Aggiungi a&nbsp;reddit" alt="Aggiungi a&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://visualcsharp.it/2008/02/20/c-30-extension-methods/&amp;title=C%23+3.0%3A+Extension+Methods" rel="nofollow" title="Aggiungi a&nbsp;Slashdot"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Aggiungi a&nbsp;Slashdot" alt="Aggiungi a&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://visualcsharp.it/2008/02/20/c-30-extension-methods/&amp;title=C%23+3.0%3A+Extension+Methods" rel="nofollow" title="Aggiungi a&nbsp;Stumble Upon"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Aggiungi a&nbsp;Stumble Upon" alt="Aggiungi a&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http://visualcsharp.it/2008/02/20/c-30-extension-methods/" rel="nofollow" title="Aggiungi a&nbsp;Squidoo"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Aggiungi a&nbsp;Squidoo" alt="Aggiungi a&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http://visualcsharp.it/2008/02/20/c-30-extension-methods/" rel="nofollow" title="Aggiungi a&nbsp;SphereIt"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Aggiungi a&nbsp;SphereIt" alt="Aggiungi a&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://visualcsharp.it/2008/02/20/c-30-extension-methods/" rel="nofollow" title="Aggiungi a&nbsp;Technorati"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/technorati.png" title="Aggiungi a&nbsp;Technorati" alt="Aggiungi a&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+C%23+3.0%3A+Extension+Methods+@+http://visualcsharp.it/2008/02/20/c-30-extension-methods/" rel="nofollow" title="Aggiungi a&nbsp;Twitter"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/twitter.png" title="Aggiungi a&nbsp;Twitter" alt="Aggiungi a&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://visualcsharp.it/2008/02/20/c-30-extension-methods/&amp;t=C%23+3.0%3A+Extension+Methods" rel="nofollow" title="Aggiungi a&nbsp;Yahoo My Web"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Aggiungi a&nbsp;Yahoo My Web" alt="Aggiungi a&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<img src="http://feeds.feedburner.com/~r/visualcsharp/~4/gPzF8Dta8Ao" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://visualcsharp.it/2008/02/20/c-30-extension-methods/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://visualcsharp.it/2008/02/20/c-30-extension-methods/</feedburner:origLink></item>
		<item>
		<title>C# 3.0: Implicitly typed local variables</title>
		<link>http://feedproxy.google.com/~r/visualcsharp/~3/vYTo-5K84oE/</link>
		<comments>http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 20:57:04 +0000</pubDate>
		<dc:creator>Emanuele Origgi</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C# 3.0]]></category>
		<category><![CDATA[Implicitly typed local variables]]></category>
		<category><![CDATA[var]]></category>

		<guid isPermaLink="false">http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/</guid>
		<description><![CDATA[Una delle nuove funzionalità di C# 3.0 sono le Implicitly typed local variables, dove il tipo della variabile viene dedotto dal compilatore in fase di compilazione del codice in IL.
Per usare le variabili implicite si deve usare la parola chiave var:


var  i = 5;
var s = “ciao”;
var numeri = new int[] {1, 2, 3};
var [...]]]></description>
			<content:encoded><![CDATA[<p>Una delle nuove funzionalità di C# 3.0 sono le Implicitly typed local variables, dove il tipo della variabile viene dedotto dal compilatore in fase di compilazione del codice in IL.<br />
Per usare le variabili implicite si deve usare la parola chiave var:<br />
<span id="more-19"></span></p>
<pre name="code" class="c-sharp">
var  i = 5;
var s = “ciao”;
var numeri = new int[] {1, 2, 3};
var conn = new OleDbConnection();
</pre>
<p>Nonostante sembri il contrario il codice sopra è fortemente tipizzato, perché, come ho già detto, il tipo viene scelto dal compilatore.<br />
Se infatti in Visual Studio si posiziona il cursore sulla parola var, l’IntelliSense ci indica il tipo effettivo della variabile.<br />
Proprio per questo il tipo della variabile non può &#8220;variare&#8221;:</p>
<pre name="code" class="c-sharp">
var i = 5;
i = “Ciao” //Errore: Impossibile convertire in modo implicito il tipo String in int
var i = null; //Errore
</pre>
<p>Per poter usare le Implicitly typed local variables si devono seguire delle semplici regole:</p>
<ul>
<li>Ovviamente, come dice il nome, non possono essere variabili globali ma solo locali;</li>
<li>La dichiarazione deve includere un inizializzatore. Per esempio il seguente codice darebbe errore:
<pre name="code" class="c-sharp">var i; //Errore </pre>
</li>
<li>L’inizializzatore deve essere un’espressione. Non può essere un oggetto
<pre name="code" class="c-sharp">
OleDbConnection conn;
OleDbConnection conn2 = new OleDbConnection();
var c = conn; //Errore
var c2 = conn2; //GIUSTO</pre>
</li>
<li>Le variabili implicite non accettano valori null</li>
</ul>
<p>L’utilizzo di var diventa comodissimo nei cicli foreach. Per esempio:</p>
<pre name="code" class="c-sharp">
int[] numeri = {1,2, 3};
foreach(var n in numeri)
	//fai qualcosa
</pre>
<p>Un’ultima osservazione: in C# 3.0 questo codice</p>
<pre name="code" class="c-sharp">
            int var = 5;
            var k = var;
</pre>
<p>funziona perfettamente!</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Condivi questo articolo:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/" rel="nofollow" title="Aggiungi a&nbsp;Bloglines"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Aggiungi a&nbsp;Bloglines" alt="Aggiungi a&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/&amp;submitHeadline=C%23+3.0%3A+Implicitly+typed+local+variables&amp;submitSummary=" rel="nofollow" title="Aggiungi a&nbsp;Buzz"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/buzz.png" title="Aggiungi a&nbsp;Buzz" alt="Aggiungi a&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/&amp;title=C%23+3.0%3A+Implicitly+typed+local+variables" rel="nofollow" title="Aggiungi a&nbsp;Del.icio.us"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/delicious.png" title="Aggiungi a&nbsp;Del.icio.us" alt="Aggiungi a&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/&amp;title=C%23+3.0%3A+Implicitly+typed+local+variables" rel="nofollow" title="Aggiungi a&nbsp;digg"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/digg.png" title="Aggiungi a&nbsp;digg" alt="Aggiungi a&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/&amp;title=C%23+3.0%3A+Implicitly+typed+local+variables" rel="nofollow" title="Aggiungi a&nbsp;DotNetKicks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Aggiungi a&nbsp;DotNetKicks" alt="Aggiungi a&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=C%23+3.0%3A+Implicitly+typed+local+variables&amp;url=http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/&amp;title=C%23+3.0%3A+Implicitly+typed+local+variables" rel="nofollow" title="Aggiungi a&nbsp;DZone"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dzone.png" title="Aggiungi a&nbsp;DZone" alt="Aggiungi a&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/" rel="nofollow" title="Aggiungi a&nbsp;Facebook"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/facebook.png" title="Aggiungi a&nbsp;Facebook" alt="Aggiungi a&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/&amp;title=C%23+3.0%3A+Implicitly+typed+local+variables" rel="nofollow" title="Aggiungi a&nbsp;Google Bookmarks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/google.png" title="Aggiungi a&nbsp;Google Bookmarks" alt="Aggiungi a&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/&amp;title=C%23+3.0%3A+Implicitly+typed+local+variables" rel="nofollow" title="Aggiungi a&nbsp;reddit"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/reddit.png" title="Aggiungi a&nbsp;reddit" alt="Aggiungi a&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/&amp;title=C%23+3.0%3A+Implicitly+typed+local+variables" rel="nofollow" title="Aggiungi a&nbsp;Slashdot"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Aggiungi a&nbsp;Slashdot" alt="Aggiungi a&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/&amp;title=C%23+3.0%3A+Implicitly+typed+local+variables" rel="nofollow" title="Aggiungi a&nbsp;Stumble Upon"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Aggiungi a&nbsp;Stumble Upon" alt="Aggiungi a&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/" rel="nofollow" title="Aggiungi a&nbsp;Squidoo"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Aggiungi a&nbsp;Squidoo" alt="Aggiungi a&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/" rel="nofollow" title="Aggiungi a&nbsp;SphereIt"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Aggiungi a&nbsp;SphereIt" alt="Aggiungi a&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/" rel="nofollow" title="Aggiungi a&nbsp;Technorati"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/technorati.png" title="Aggiungi a&nbsp;Technorati" alt="Aggiungi a&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+C%23+3.0%3A+Implicitly+typed+local+variables+@+http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/" rel="nofollow" title="Aggiungi a&nbsp;Twitter"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/twitter.png" title="Aggiungi a&nbsp;Twitter" alt="Aggiungi a&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/&amp;t=C%23+3.0%3A+Implicitly+typed+local+variables" rel="nofollow" title="Aggiungi a&nbsp;Yahoo My Web"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Aggiungi a&nbsp;Yahoo My Web" alt="Aggiungi a&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<img src="http://feeds.feedburner.com/~r/visualcsharp/~4/vYTo-5K84oE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://visualcsharp.it/2008/02/12/implicitly-typed-local-variables/</feedburner:origLink></item>
		<item>
		<title>C# 3.0: Object Initializers</title>
		<link>http://feedproxy.google.com/~r/visualcsharp/~3/RmbUb-kovYE/</link>
		<comments>http://visualcsharp.it/2008/02/06/c-30-object-inizializers/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 18:21:58 +0000</pubDate>
		<dc:creator>Emanuele Origgi</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C# 3.0]]></category>
		<category><![CDATA[collection inizializers]]></category>
		<category><![CDATA[object inizializers]]></category>

		<guid isPermaLink="false">http://visualcsharp.it/2008/02/06/c-30-object-inizializers/</guid>
		<description><![CDATA[Gli object initializers permettono di impostare le proprietà pubbliche di una classe con una sintassi molto semplice e veloce.
Supponiamo di avere una classa Cliente con queste proprietà pubbliche(ho utilizzato le automatic properties): 

public string Nome  { get; set; }
public string Cognome{ get; set;}
public string CodiceFiscale{ get; set;}


Dobbiamo adesso impostare queste proprietà: in C# 2.0 [...]]]></description>
			<content:encoded><![CDATA[<p>Gli object initializers permettono di impostare le proprietà pubbliche di una classe con una sintassi molto semplice e veloce.<br />
Supponiamo di avere una classa Cliente con queste proprietà pubbliche(ho utilizzato le <a href="http://visualcsharp.it/2008/02/02/c-30-automatic-properties/">automatic properties</a>): </p>
<pre name="code" class="c-sharp">
public string Nome  { get; set; }
public string Cognome{ get; set;}
public string CodiceFiscale{ get; set;}
</pre>
<p><span id="more-18"></span><br />
Dobbiamo adesso impostare queste proprietà: in C# 2.0 avremmo fatto così:</p>
<pre name="code" class="c-sharp">
Cliente cliente = new Cliente();
cliente.Cognome = "Cognome";
cliente.Nome = "Nome";
cliente.CodiceFiscale = "CodiceFiscale";
</pre>
<p>Ora con C# 3.0 possiamo utilizzare gli object initializers: </p>
<pre name="code" class="c-sharp">
Cliente cliente = new Cliente()
      { Nome = "nome", Cognome = "cognome", CodiceFiscale = "codiceFiscale" };
</pre>
<p>Come potete vedere le proprietà si impostano mentre si istanzia la classe. Questa sintassi, oltre ad essere più veloce(considerate che c&#8217;è anche il supporto dell&#8217;IntelliSense), è anche più facile da leggere. </p>
<p>Inoltre, in C# 3.0, gli oggetti che implementano l’interfaccia IEnumerable<T> hanno un metodo pubblico Add che permette di usare i collection initializer. Ecco un esempio con la struttura Point</p>
<pre name="code" class="c-sharp">
List<Point> Square = new List<Point>
{
    new Point { X=0, Y=5 },
    new Point { X=5, Y=5 },
    new Point { X=5, Y=0 },
    new Point { X=0, Y=0 }
};
</pre>
<p>Gli object initializers, come le automatic properties, sono &#8220;zucchero sintattico&#8221; che permettono però di scrivere codice meno verboso e quindi più facile da leggere.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Condivi questo articolo:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://visualcsharp.it/2008/02/06/c-30-object-inizializers/" rel="nofollow" title="Aggiungi a&nbsp;Bloglines"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Aggiungi a&nbsp;Bloglines" alt="Aggiungi a&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://visualcsharp.it/2008/02/06/c-30-object-inizializers/&amp;submitHeadline=C%23+3.0%3A+Object+Initializers&amp;submitSummary=" rel="nofollow" title="Aggiungi a&nbsp;Buzz"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/buzz.png" title="Aggiungi a&nbsp;Buzz" alt="Aggiungi a&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://visualcsharp.it/2008/02/06/c-30-object-inizializers/&amp;title=C%23+3.0%3A+Object+Initializers" rel="nofollow" title="Aggiungi a&nbsp;Del.icio.us"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/delicious.png" title="Aggiungi a&nbsp;Del.icio.us" alt="Aggiungi a&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://visualcsharp.it/2008/02/06/c-30-object-inizializers/&amp;title=C%23+3.0%3A+Object+Initializers" rel="nofollow" title="Aggiungi a&nbsp;digg"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/digg.png" title="Aggiungi a&nbsp;digg" alt="Aggiungi a&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://visualcsharp.it/2008/02/06/c-30-object-inizializers/&amp;title=C%23+3.0%3A+Object+Initializers" rel="nofollow" title="Aggiungi a&nbsp;DotNetKicks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Aggiungi a&nbsp;DotNetKicks" alt="Aggiungi a&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=C%23+3.0%3A+Object+Initializers&amp;url=http://visualcsharp.it/2008/02/06/c-30-object-inizializers/&amp;title=C%23+3.0%3A+Object+Initializers" rel="nofollow" title="Aggiungi a&nbsp;DZone"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dzone.png" title="Aggiungi a&nbsp;DZone" alt="Aggiungi a&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://visualcsharp.it/2008/02/06/c-30-object-inizializers/" rel="nofollow" title="Aggiungi a&nbsp;Facebook"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/facebook.png" title="Aggiungi a&nbsp;Facebook" alt="Aggiungi a&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://visualcsharp.it/2008/02/06/c-30-object-inizializers/&amp;title=C%23+3.0%3A+Object+Initializers" rel="nofollow" title="Aggiungi a&nbsp;Google Bookmarks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/google.png" title="Aggiungi a&nbsp;Google Bookmarks" alt="Aggiungi a&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://visualcsharp.it/2008/02/06/c-30-object-inizializers/&amp;title=C%23+3.0%3A+Object+Initializers" rel="nofollow" title="Aggiungi a&nbsp;reddit"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/reddit.png" title="Aggiungi a&nbsp;reddit" alt="Aggiungi a&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://visualcsharp.it/2008/02/06/c-30-object-inizializers/&amp;title=C%23+3.0%3A+Object+Initializers" rel="nofollow" title="Aggiungi a&nbsp;Slashdot"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Aggiungi a&nbsp;Slashdot" alt="Aggiungi a&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://visualcsharp.it/2008/02/06/c-30-object-inizializers/&amp;title=C%23+3.0%3A+Object+Initializers" rel="nofollow" title="Aggiungi a&nbsp;Stumble Upon"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Aggiungi a&nbsp;Stumble Upon" alt="Aggiungi a&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http://visualcsharp.it/2008/02/06/c-30-object-inizializers/" rel="nofollow" title="Aggiungi a&nbsp;Squidoo"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Aggiungi a&nbsp;Squidoo" alt="Aggiungi a&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http://visualcsharp.it/2008/02/06/c-30-object-inizializers/" rel="nofollow" title="Aggiungi a&nbsp;SphereIt"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Aggiungi a&nbsp;SphereIt" alt="Aggiungi a&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://visualcsharp.it/2008/02/06/c-30-object-inizializers/" rel="nofollow" title="Aggiungi a&nbsp;Technorati"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/technorati.png" title="Aggiungi a&nbsp;Technorati" alt="Aggiungi a&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+C%23+3.0%3A+Object+Initializers+@+http://visualcsharp.it/2008/02/06/c-30-object-inizializers/" rel="nofollow" title="Aggiungi a&nbsp;Twitter"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/twitter.png" title="Aggiungi a&nbsp;Twitter" alt="Aggiungi a&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://visualcsharp.it/2008/02/06/c-30-object-inizializers/&amp;t=C%23+3.0%3A+Object+Initializers" rel="nofollow" title="Aggiungi a&nbsp;Yahoo My Web"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Aggiungi a&nbsp;Yahoo My Web" alt="Aggiungi a&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<img src="http://feeds.feedburner.com/~r/visualcsharp/~4/RmbUb-kovYE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://visualcsharp.it/2008/02/06/c-30-object-inizializers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://visualcsharp.it/2008/02/06/c-30-object-inizializers/</feedburner:origLink></item>
		<item>
		<title>C# 3.0: Automatic Properties</title>
		<link>http://feedproxy.google.com/~r/visualcsharp/~3/dCfb1tFc_qI/</link>
		<comments>http://visualcsharp.it/2008/02/02/c-30-automatic-properties/#comments</comments>
		<pubDate>Sat, 02 Feb 2008 14:17:29 +0000</pubDate>
		<dc:creator>Emanuele Origgi</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C# 3.0]]></category>
		<category><![CDATA[Properties]]></category>

		<guid isPermaLink="false">http://visualcsharp.it/2008/02/02/c-30-automatic-properties/</guid>
		<description><![CDATA[Questo è il primo di una serie di articoli dedicati al nuovo C# 3.0.
Iniziamo da un argomento leggero e facile, ma utile in certi contesti.
Il nuovo compilatore di C#, presente in Visual Studio 2008, introduce le Automatic Properties, ovvero una forma abbreviata delle proprietà.

Capita spesso di scrivere classi che contengono molti campi privati con le [...]]]></description>
			<content:encoded><![CDATA[<p>Questo è il primo di una serie di articoli dedicati al nuovo C# 3.0.</p>
<p>Iniziamo da un argomento leggero e facile, ma utile in certi contesti.<br />
Il nuovo compilatore di C#, presente in Visual Studio 2008, introduce le Automatic Properties, ovvero una forma abbreviata delle proprietà.<br />
<span id="more-17"></span><br />
Capita spesso di scrivere classi che contengono molti campi privati con le rispettive proprietà. Per esempio:</p>
<pre name="code" class="c-sharp">
public class Cliente
{
   private string nome;
   private string cognome;
   private DateTime dataDiNascita;
   public string Nome
   {
     get { return this.nome; }
     set { this.nome = value; }
   }
   public string Cognome
   {
     get { return this.cognome; }
     set { this.cognome = value; }
   }
   public DateTime DataDiNascita
   {
     get { return this.dataDiNascita; }
     set { this.dataDiNascita = value; }
  }
  //ecc
} </pre>
<p>Questo codice è lungo e noioso da scrivere.<br />
Attraverso le Automatic Proprties di C# 3.0 il codice diventa così: </p>
<pre name="code" class="c-sharp">
public class Cliente
{
   public string Nome
   {
     get;
     private set; // notate il modificatore private
   }
public string Cognome{ get; set;}
public DateTime DataDiNascita{ get; set;}
//ecc
} </pre>
<p>Si evita quindi di dichiarare i campi privati: a crearli ci penserà il compilatore al momento della compilazione in codice IL.<br />
Questo tipo di sintassi ha però dei limiti: non può essere usata quando nei modificatori get e set è presente della logica. </p>
<p>Per esempio in questo caso non si possono usare le Automatic Properties: </p>
<pre name="code" class="c-sharp">
public string Password
{
   get { return this.password; } //Questo è solo un esempio
   set
   {
     if (value.Length > 6)
       this.password = value;
   }
} </pre>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Condivi questo articolo:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://visualcsharp.it/2008/02/02/c-30-automatic-properties/" rel="nofollow" title="Aggiungi a&nbsp;Bloglines"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Aggiungi a&nbsp;Bloglines" alt="Aggiungi a&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http://visualcsharp.it/2008/02/02/c-30-automatic-properties/&amp;submitHeadline=C%23+3.0%3A+Automatic+Properties&amp;submitSummary=" rel="nofollow" title="Aggiungi a&nbsp;Buzz"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/buzz.png" title="Aggiungi a&nbsp;Buzz" alt="Aggiungi a&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://visualcsharp.it/2008/02/02/c-30-automatic-properties/&amp;title=C%23+3.0%3A+Automatic+Properties" rel="nofollow" title="Aggiungi a&nbsp;Del.icio.us"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/delicious.png" title="Aggiungi a&nbsp;Del.icio.us" alt="Aggiungi a&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://visualcsharp.it/2008/02/02/c-30-automatic-properties/&amp;title=C%23+3.0%3A+Automatic+Properties" rel="nofollow" title="Aggiungi a&nbsp;digg"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/digg.png" title="Aggiungi a&nbsp;digg" alt="Aggiungi a&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://visualcsharp.it/2008/02/02/c-30-automatic-properties/&amp;title=C%23+3.0%3A+Automatic+Properties" rel="nofollow" title="Aggiungi a&nbsp;DotNetKicks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Aggiungi a&nbsp;DotNetKicks" alt="Aggiungi a&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=C%23+3.0%3A+Automatic+Properties&amp;url=http://visualcsharp.it/2008/02/02/c-30-automatic-properties/&amp;title=C%23+3.0%3A+Automatic+Properties" rel="nofollow" title="Aggiungi a&nbsp;DZone"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/dzone.png" title="Aggiungi a&nbsp;DZone" alt="Aggiungi a&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://visualcsharp.it/2008/02/02/c-30-automatic-properties/" rel="nofollow" title="Aggiungi a&nbsp;Facebook"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/facebook.png" title="Aggiungi a&nbsp;Facebook" alt="Aggiungi a&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://visualcsharp.it/2008/02/02/c-30-automatic-properties/&amp;title=C%23+3.0%3A+Automatic+Properties" rel="nofollow" title="Aggiungi a&nbsp;Google Bookmarks"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/google.png" title="Aggiungi a&nbsp;Google Bookmarks" alt="Aggiungi a&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://visualcsharp.it/2008/02/02/c-30-automatic-properties/&amp;title=C%23+3.0%3A+Automatic+Properties" rel="nofollow" title="Aggiungi a&nbsp;reddit"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/reddit.png" title="Aggiungi a&nbsp;reddit" alt="Aggiungi a&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://visualcsharp.it/2008/02/02/c-30-automatic-properties/&amp;title=C%23+3.0%3A+Automatic+Properties" rel="nofollow" title="Aggiungi a&nbsp;Slashdot"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Aggiungi a&nbsp;Slashdot" alt="Aggiungi a&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://visualcsharp.it/2008/02/02/c-30-automatic-properties/&amp;title=C%23+3.0%3A+Automatic+Properties" rel="nofollow" title="Aggiungi a&nbsp;Stumble Upon"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Aggiungi a&nbsp;Stumble Upon" alt="Aggiungi a&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http://visualcsharp.it/2008/02/02/c-30-automatic-properties/" rel="nofollow" title="Aggiungi a&nbsp;Squidoo"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Aggiungi a&nbsp;Squidoo" alt="Aggiungi a&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http://visualcsharp.it/2008/02/02/c-30-automatic-properties/" rel="nofollow" title="Aggiungi a&nbsp;SphereIt"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Aggiungi a&nbsp;SphereIt" alt="Aggiungi a&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://visualcsharp.it/2008/02/02/c-30-automatic-properties/" rel="nofollow" title="Aggiungi a&nbsp;Technorati"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/technorati.png" title="Aggiungi a&nbsp;Technorati" alt="Aggiungi a&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+C%23+3.0%3A+Automatic+Properties+@+http://visualcsharp.it/2008/02/02/c-30-automatic-properties/" rel="nofollow" title="Aggiungi a&nbsp;Twitter"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/twitter.png" title="Aggiungi a&nbsp;Twitter" alt="Aggiungi a&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://visualcsharp.it/2008/02/02/c-30-automatic-properties/&amp;t=C%23+3.0%3A+Automatic+Properties" rel="nofollow" title="Aggiungi a&nbsp;Yahoo My Web"><img class="social_img" src="http://visualcsharp.it/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Aggiungi a&nbsp;Yahoo My Web" alt="Aggiungi a&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<img src="http://feeds.feedburner.com/~r/visualcsharp/~4/dCfb1tFc_qI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://visualcsharp.it/2008/02/02/c-30-automatic-properties/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://visualcsharp.it/2008/02/02/c-30-automatic-properties/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.828 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-07-29 06:46:55 --><!-- Compression = gzip -->

