<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>przemkovv&#039;s world &#187; Wyrażenia lambda</title>
	<atom:link href="http://przemkovv.net/tag/wyrazenia-lambda/feed/" rel="self" type="application/rss+xml" />
	<link>http://przemkovv.net</link>
	<description>The future is now</description>
	<lastBuildDate>Sun, 09 Oct 2011 20:17:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Wykorzystanie wyrażeń lambda w naszych klasach</title>
		<link>http://przemkovv.net/2008/02/24/wykorzystanie-wyrazen-lambda-w-naszych-klasach/</link>
		<comments>http://przemkovv.net/2008/02/24/wykorzystanie-wyrazen-lambda-w-naszych-klasach/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 14:33:39 +0000</pubDate>
		<dc:creator>Przemysław Walkowiak</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Wyrażenia lambda]]></category>

		<guid isPermaLink="false">http://przemkovv.net/2008/02/24/wykorzystanie-wyrazen-lambda-w-naszych-klasach/</guid>
		<description><![CDATA[Wyrażenia lambda jest to nowa konstrukcja wprowadzona do C# 3.0 pozwalająca w łatwy i przejrzysty sposób na &#8222;szybko&#8221; zdefiniować jakąś funkcję. W tej notce napiszę jak można je użyć do definiowan Nadrzędnym typem każdego wyrażenia lambda jest typ Func&#60;T1, T2, T3, T4, TResult&#62; gdzie T1-T4 są typami argumentów, a TResult typem wyniku. Nie jesteśmy oczywiście [...]]]></description>
			<content:encoded><![CDATA[<p>Wyrażenia lambda jest to nowa konstrukcja wprowadzona do C# 3.0 pozwalająca w łatwy i przejrzysty sposób na &#8222;szybko&#8221; zdefiniować jakąś funkcję. W tej notce napiszę jak można je użyć do definiowan
</p>
<p>Nadrzędnym typem każdego wyrażenia lambda jest typ <em>Func&lt;T1, T2, T3, T4, TResult&gt;</em> gdzie T1-T4 są typami argumentów, a TResult typem wyniku. Nie jesteśmy oczywiście przywiązani do czterech parametrów wejściowych, gdyż zostały zdefiniowane typy od 0 do 4 argumentowe (zmienia się liczba wystąpień TX). <em>TResult</em> jest natomiast parametrem obowiązkowym.
</p>
<p>W poniższym przykładzie zdefiniuję metodę w klasie <em>Matrix</em>, która jako argument będzie otrzymywała wyrażenie lambda (funkcję) i wykona ją dla każdego z elementów macierzy. Przechodząc do praktyki będzie to wyglądało tak:
</p>
<pre lang="csharp" lineno="1">        public void DoForAllElements(Func< T , T> function)
        {

            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    this[i, j] = function(this[i, j]);
                }
            }
        }
</pre>
<p>Wykorzystać ją możemy w sposób następujący:
</p>
</pre>
<pre lang="csharp" lineno="1">var A = new Matrix< Double , DoubleCalculator>();
A.DoForAllElements( x => Math.Sqrt(x) );
</pre>
<p>Prawda, że proste? <img src='http://przemkovv.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p><div class="bottomcontainerBox" style="border:1px solid #808080; border-radius:5px 5px 5px 5px; box-shadow:2px 2px 5px rgba(0,0,0,0.3);background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fprzemkovv.net%2F2008%2F02%2F24%2Fwykorzystanie-wyrazen-lambda-w-naszych-klasach%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://przemkovv.net/2008/02/24/wykorzystanie-wyrazen-lambda-w-naszych-klasach/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://przemkovv.net/2008/02/24/wykorzystanie-wyrazen-lambda-w-naszych-klasach/"  data-text="Wykorzystanie wyrażeń lambda w naszych klasach" data-count="horizontal" data-via="przemkovv">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://przemkovv.net/2008/02/24/wykorzystanie-wyrazen-lambda-w-naszych-klasach/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

