<?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>Blog d&#039;Etanne &#187; C#</title>
	<atom:link href="https://blog.developpez.com/etanne/ptag/c/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/etanne</link>
	<description>.NET, développement en général</description>
	<lastBuildDate>Fri, 07 Jun 2013 06:00:29 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>[DotNET] Yield return (I&#8217;ll be back) !</title>
		<link>https://blog.developpez.com/etanne/p12014/net/yield-return-et-recursivite-avec-linq</link>
		<comments>https://blog.developpez.com/etanne/p12014/net/yield-return-et-recursivite-avec-linq#comments</comments>
		<pubDate>Mon, 03 Jun 2013 19:40:15 +0000</pubDate>
		<dc:creator><![CDATA[Etanne]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Linq]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[linq]]></category>
		<category><![CDATA[récursivité]]></category>
		<category><![CDATA[return]]></category>
		<category><![CDATA[yield]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/etanne/?p=25</guid>
		<description><![CDATA[Le mot clé yield permet de retourner une valeur à chaque itération d&#8217;une boucle. Pour bien comprendre on va prendre un exemple, nous devons ajouter à la classe MathsHelper une méthode GetPrimes(max) qui renvoi l&#8217;ensemble des nombres premiers. Ces nombres &#8230; <a href="https://blog.developpez.com/etanne/p12014/net/yield-return-et-recursivite-avec-linq">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Le mot clé yield permet de retourner une valeur à chaque itération d&rsquo;une boucle.</p>
<p>Pour bien comprendre on va prendre un exemple, nous devons ajouter à la classe <em>MathsHelper</em> une méthode <em>GetPrimes(max)</em> qui renvoi l&rsquo;ensemble des nombres premiers. Ces nombres sont à afficher par la suite dans la console.</p>
<p><span id="more-25"></span><br />
Voici la classe MathsHelper :</p>
<div class="codecolorer-container c default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br /></div></td><td><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">/// &lt;summary&gt;</span><br />
<span style="color: #666666; font-style: italic;">/// Lister les nombre premiers</span><br />
<span style="color: #666666; font-style: italic;">/// &lt;/summary&gt;</span><br />
public <span style="color: #993333;">static</span> <span style="color: #993333;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> GetPrimes<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> maxValue<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; var primes <span style="color: #339933;">=</span> new List<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// tableau contenant les nombres premiers</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> i <span style="color: #339933;">=</span> <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&gt;</span> maxValue<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>IsPrime<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// Tester si le nombre est primaire</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// On ajoute</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; primes.<span style="color: #202020;">Add</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> primes.<span style="color: #202020;">ToArray</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// On renvoi sous forme de tableau</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #666666; font-style: italic;">/// &lt;summary&gt;</span><br />
<span style="color: #666666; font-style: italic;">/// Tester si un nombre est premier</span><br />
<span style="color: #666666; font-style: italic;">/// &lt;/summary&gt;</span><br />
private <span style="color: #993333;">static</span> bool IsPrime<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> value<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>var i <span style="color: #339933;">=</span> <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> value<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>value<span style="color: #339933;">%</span>i <span style="color: #339933;">==</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Le fichier Program.cs avec 100 000 nombres à tester :</p>
<div class="codecolorer-container c default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333;">static</span> <span style="color: #993333;">void</span> Main<span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; var watcher <span style="color: #339933;">=</span> new Stopwatch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; watcher.<span style="color: #202020;">Start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; foreach <span style="color: #009900;">&#40;</span>var prime in MathsHelper.<span style="color: #202020;">GetPrimes</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">100000</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Console.<span style="color: #202020;">WriteLine</span><span style="color: #009900;">&#40;</span>prime<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; watcher.<span style="color: #202020;">Stop</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; Console.<span style="color: #202020;">WriteLine</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Généré en {0}ms&quot;</span><span style="color: #339933;">,</span>watcher.<span style="color: #202020;">ElapsedMilliseconds</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; <br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Comme on peut le voir, on cherche en premier tous les nombres premiers, puis seulement ensuite on les affiche en retournant un tableau d&rsquo;entier.</p>
<p>Maintenant on va changer un peu les choses, on va afficher au fur et à mesure les résultats.</p>
<p>Voici la méthode <em>GetPrimes</em> revue avec <strong>yield return</strong> (La classe <em>Program.cs</em> ne change pas.):</p>
<div class="codecolorer-container c default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">public <span style="color: #993333;">static</span> IEnumerable<span style="color: #339933;">&lt;</span>int<span style="color: #339933;">&gt;</span> GetPrimes<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> maxValue<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> i <span style="color: #339933;">=</span> <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> maxValue<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>IsPrime<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// Tester si le nombre est primaire</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield <span style="color: #b1b100;">return</span> i<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Ainsi on retourne &laquo;&nbsp;à la volé&nbsp;&raquo; les résultats. On notera aussi l&rsquo;obligation d&rsquo;utiliser un énumérateur.</p>
<p>Que ce passe t-il en réalité ? Voici le code désassemblé :</p>
<div class="codecolorer-container c default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; public <span style="color: #993333;">static</span> IEnumerable<span style="color: #339933;">&lt;</span>int<span style="color: #339933;">&gt;</span> GetPrimes<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> maxValue<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; MathsHelper.<span style="color: #339933;">&lt;</span>GetPrimes<span style="color: #339933;">&gt;</span>d__0 getPrimesD0 <span style="color: #339933;">=</span> new MathsHelper.<span style="color: #339933;">&lt;</span>GetPrimes<span style="color: #339933;">&amp;</span>gtd__0<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; getPrimesD0.<span style="color: #339933;">&lt;&gt;</span><span style="color: #0000dd;">3</span>__maxValue <span style="color: #339933;">=</span> maxValue<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900;">&#40;</span>IEnumerable<span style="color: #009900;">&#41;</span> getPrimesD0<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>La fonction retourne directement une collection IEnumerable (ici rien de spécial);</p>
<p>Pour cela .NET a généré une classe de type IEnumerable (&lt;GetPrimes&gt;d__0), voici un extrait de la classe que j&rsquo;ai nettoyé :</p>
<div class="codecolorer-container c default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br /></div></td><td><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; private sealed class <span style="color: #339933;">&lt;</span>GetPrimes<span style="color: #339933;">&gt;</span>__0 <span style="color: #339933;">:</span> IEnumerable<span style="color: #339933;">&lt;</span>int<span style="color: #339933;">&gt;,</span> IEnumerable<span style="color: #339933;">,</span> IEnumerator<span style="color: #339933;">&lt;</span>int<span style="color: #339933;">&gt;,</span> IEnumerator<span style="color: #339933;">,</span> IDisposable<br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #993333;">int</span> IEnumerator<span style="color: #339933;">&lt;</span>int<span style="color: #339933;">&gt;</span>.<span style="color: #202020;">Current</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#91;</span>DebuggerHidden<span style="color: #009900;">&#93;</span> get<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> this.<span style="color: #339933;">&lt;&gt;</span><span style="color: #0000dd;">2</span>__current<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; bool IEnumerator.<span style="color: #202020;">MoveNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span>this.<span style="color: #339933;">&lt;&gt;</span><span style="color: #0000dd;">1</span>__state<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">case</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span style="color: #339933;">&lt;&gt;</span><span style="color: #0000dd;">1</span>__state <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span style="color: #339933;">&lt;</span>i<span style="color: #339933;">&gt;</span><span style="color: #0000dd;">5</span>__1 <span style="color: #339933;">=</span> <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">goto</span> label_6<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">case</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span style="color: #339933;">&lt;&gt;</span><span style="color: #0000dd;">1</span>__state <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">default</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
label_5<span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">++</span>this.<span style="color: #339933;">&lt;</span>i<span style="color: #339933;">&gt;</span><span style="color: #0000dd;">5</span>__1<span style="color: #339933;">;</span><br />
label_6<span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>this.<span style="color: #339933;">&lt;</span>i<span style="color: #339933;">&gt;</span><span style="color: #0000dd;">5</span>__1 <span style="color: #339933;">&lt;</span> this.<span style="color: #202020;">maxValue</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>MathsHelper.<span style="color: #202020;">IsPrime</span><span style="color: #009900;">&#40;</span>this.<span style="color: #339933;">&lt;</span>i<span style="color: #339933;">&gt;</span><span style="color: #0000dd;">5</span>__1<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span style="color: #339933;">&lt;&gt;</span><span style="color: #0000dd;">2</span>__current <span style="color: #339933;">=</span> this.<span style="color: #339933;">&lt;</span>i<span style="color: #339933;">&gt;</span><span style="color: #0000dd;">5</span>__1<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span style="color: #339933;">&lt;&gt;</span><span style="color: #0000dd;">1</span>__state <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">goto</span> label_5<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">goto</span> <span style="color: #b1b100;">default</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>On remarque la fonction &laquo;&nbsp;MoveNext()&nbsp;&raquo; qui permet de passer est la valeur suivante (le calcul du nombre premier y est effectué).<br />
Et on remarque aussi la présence d&rsquo;un assesseur qui est là pour récupérer la dernière valeur générée.</p>
<p>J&rsquo;espère que ce billet vous a aidé pour la compréhension du mot clé yield.</p>
<p>Je vous conseil fortement de lire la MDSN afin de maîtriser au mieux ce mot clé : <a href="http://msdn.microsoft.com/fr-fr/library/9k7k7cf0(v=vs.80).aspx">yield (Référence C#)</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
