<?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>Dev4Food &#187; Программинг</title>
	<atom:link href="http://dev4food.ru/category/prg/feed/" rel="self" type="application/rss+xml" />
	<link>http://dev4food.ru</link>
	<description>Всё о работе за актуальные деньги</description>
	<lastBuildDate>Mon, 19 Jul 2010 08:56:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Кто будет президентом?</title>
		<link>http://dev4food.ru/2010/03/kto-budet-prezidentom/</link>
		<comments>http://dev4food.ru/2010/03/kto-budet-prezidentom/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 11:03:30 +0000</pubDate>
		<dc:creator>2-й фрилансер</dc:creator>
				<category><![CDATA[Программинг]]></category>

		<guid isPermaLink="false">http://dev4food.ru/?p=1272</guid>
		<description><![CDATA[Так правильнее, хотя тоже не идеально:

1
2
3
4
if &#40; &#40;CurrentYear — 2008&#41; / 4 % 2 == 0 &#41;:
return «Медведев»
else:
return «Путин»

]]></description>
			<content:encoded><![CDATA[<p>Так правильнее, хотя тоже не идеально:</p>

<div class="wp_codebox"><table><tr id="p12722"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p1272code2"><pre class="c" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>CurrentYear — <span style="color: #0000dd;">2008</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #0000dd;">4</span> <span style="color: #339933;">%</span> <span style="color: #0000dd;">2</span> <span style="color: #339933;">==</span> <span style="color: #0000dd;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span>
<span style="color: #b1b100;">return</span> «Медведев»
<span style="color: #b1b100;">else</span><span style="color: #339933;">:</span>
<span style="color: #b1b100;">return</span> «Путин»</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://dev4food.ru/2010/03/kto-budet-prezidentom/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Коварный вопрос по Event,Delegate</title>
		<link>http://dev4food.ru/2010/02/kovarnyj-vopros-po-eventdelegate/</link>
		<comments>http://dev4food.ru/2010/02/kovarnyj-vopros-po-eventdelegate/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 11:35:06 +0000</pubDate>
		<dc:creator>2-й фрилансер</dc:creator>
				<category><![CDATA[Программинг]]></category>
		<category><![CDATA[Работа]]></category>
		<category><![CDATA[Вопросы]]></category>
		<category><![CDATA[С#]]></category>
		<category><![CDATA[собеседование]]></category>

		<guid isPermaLink="false">http://dev4food.ru/?p=1125</guid>
		<description><![CDATA[На собеседованиях любят задавать всякие каверзные вопросы. Одним из любимых вопросов на понимание .net платформы является вопрос про события и делегаты. В лучшем случае спрашивают отличия, в худшем могут задать такой вопрос на засыпку.
Дан код:

1
2
3
4
5
6
7
8
9
10
public class A
&#123;
  public void OnDoWork&#40;&#41;
  &#123;
    if &#40; DoWork != null &#41;
    [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-1161 alignright" style="margin: 10px;" title="Event, Delegate" src="http://dev4food.ru/wp-content/uploads/2010/02/awadhesh_singh.jpg" alt="" width="150" height="112" />На собеседованиях любят задавать всякие каверзные вопросы. Одним из любимых вопросов на понимание .net платформы является вопрос про события и делегаты. В лучшем случае спрашивают отличия, в худшем могут задать такой вопрос на засыпку.</p>
<p>Дан код:</p>

<div class="wp_codebox"><table><tr id="p11254"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code" id="p1125code4"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> A
<span style="color: #008000;">&#123;</span>
  <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> OnDoWork<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
    <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span> DoWork <span style="color: #008000;">!=</span> <span style="color: #0600FF; font-weight: bold;">null</span> <span style="color: #008000;">&#41;</span>
      DoWork<span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">this</span>, EventArgs<span style="color: #008000;">.</span><span style="color: #0000FF;">Empty</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #008000;">&#125;</span>
&nbsp;
  <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">event</span> EventHandler DoWork<span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<ol>
<li>Что будет с программой, если класс A видоизменить так: убрать ключевое слово event?</li>
<li>Что будет с программой, если вообще во всем коде убрать ключевые слова event?</li>
</ol>
<p><span id="more-1125"></span>Неподготовленных вопросы вводят в жуткий когнитивный диссонанс, как только они их осознают. Здесь главное удержаться от негодующего вопля и вспомнить синтаксические отличия применимости событий от делегатов:</p>
<ol>
<li>Событие — это тот же самый делегат, который наделяется некоторыми свойствами через слово event.</li>
<li>И событие и делегат можно объявить полем класса, но в отличие от делегата, событие не может быть локальной переменной метода (особо не роляет, но помнить стоит)</li>
<li>Событие нельзя запустить вне класса, в котором оно было объявлено (это самое важное отличие!!!)</li>
<li>Интерфейс не может содержать поля.</li>
<li>Событие всегда объявляется как «поле», а не свойство (add-remove не в счет).</li>
</ol>
<p>Это, пожалуй, единственные отличия события от делегата (я не берусь рассматривать семантическую разницу). Ну, или я что-то забыл, но вы мне сейчас напомните:)</p>
<p>Итак, если у нас есть интерфейс, в котором объявлено событие, и мы убираем ключевое слово event, то у нас возникает ошибка компилятора — дескать, интерфейс не может содержать поля (а именно полем-делегатом стало бывшее событие). Но если событие объявлено как поле класса, то с точки зрения компилятора будет совершенно корректно убрать ключевое слово.</p>
<p>Поэтому ответы на вопросы будут такие:</p>
<ol>
<li>Ничего не изменится</li>
<li>Ничего не изменится, если только в программе нет объявленных в интерфейсах событий.</li>
</ol>
<p>Да, и еще вот что удивительно — при ответе на вопрос некоторые начинают рассуждать, что событие — это MulticastDelegate, а вот Delegate может содержать ссылку только на один метод. В общем, это совершенно жуткая ересь, но тем не менее несколько разных людей мне таким образом пытались дать ответ на эти два вопроса. Откуда пошел этот миф, неизвестно. Если есть желание посмотреть, в чем же отличие MulticastDelegate от Delegate — можно сбегать поглядеть <a href="http://blogs.msdn.com/brada/archive/2004/02/05/68415.aspx" target="_blank">статью </a>мегаавторитета Брэда Абрамса — и убедиться, что различий между этим классами, кроме названия, нет.</p>
<p>П.С. Да, я знаю, что OnDoWork() не thread safe:)</p>
<p><em>&lt;— { послепоста реклама </em></p>
<p>Токарные станки применяются в нашей жизни повсеместно – автомастерские, ремонтные цеха автотранспорта, мастерские при котельных. С их помощью опытные работники, токари,  достаточно изготовляют самый большой спектр необходимых на производстве деталей.</p>
<p>Токарные <a href="http://www.am-s.ru/">станки с чпу</a> позволяют производить изделия гораздо быстрее и тщательнее, чем вручную. К недостатком можно отнести необходимость составления программы для станка.</p>
<p><em>послепоста } —&gt;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://dev4food.ru/2010/02/kovarnyj-vopros-po-eventdelegate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Индийский говнокод</title>
		<link>http://dev4food.ru/2010/02/indijskij-govnokod/</link>
		<comments>http://dev4food.ru/2010/02/indijskij-govnokod/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 10:56:56 +0000</pubDate>
		<dc:creator>2-й фрилансер</dc:creator>
				<category><![CDATA[Программинг]]></category>
		<category><![CDATA[Юмор]]></category>
		<category><![CDATA[Индусский код]]></category>

		<guid isPermaLink="false">http://dev4food.ru/?p=1093</guid>
		<description><![CDATA[Код реального коммита:

1
2
3
4
5
public bool IsMetaAdminUserLogin&#40;bool _isMetaAdminUserLogin&#41;
&#123;
bool _currentMetaAdminUserLogin = _isMetaAdminUserLogin;
return _currentMetaAdminUserLogin;
&#125;

Передернули переменные  
]]></description>
			<content:encoded><![CDATA[<p>Код реального коммита:</p>

<div class="wp_codebox"><table><tr id="p10936"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p1093code6"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">bool</span> IsMetaAdminUserLogin<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">bool</span> _isMetaAdminUserLogin<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
<span style="color: #6666cc; font-weight: bold;">bool</span> _currentMetaAdminUserLogin <span style="color: #008000;">=</span> _isMetaAdminUserLogin<span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">return</span> _currentMetaAdminUserLogin<span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Передернули переменные <img src='http://dev4food.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dev4food.ru/2010/02/indijskij-govnokod/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Учим SQL!</title>
		<link>http://dev4food.ru/2009/10/uchim-sql/</link>
		<comments>http://dev4food.ru/2009/10/uchim-sql/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 13:27:02 +0000</pubDate>
		<dc:creator>2-й фрилансер</dc:creator>
				<category><![CDATA[Программинг]]></category>
		<category><![CDATA[Юмор]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[девушки]]></category>

		<guid isPermaLink="false">http://dev4food.ru/?p=675</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://dev4food.ru/wp-content/uploads/2009/10/0004695s.jpg"><img class="size-medium wp-image-676 aligncenter" title="Учим sql" src="http://dev4food.ru/wp-content/uploads/2009/10/0004695s-262x300.jpg" alt="Учим sql" width="262" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dev4food.ru/2009/10/uchim-sql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Интересная задача для программистов</title>
		<link>http://dev4food.ru/2009/10/interesnaya-zadacha-dlya-programmistov/</link>
		<comments>http://dev4food.ru/2009/10/interesnaya-zadacha-dlya-programmistov/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 18:16:40 +0000</pubDate>
		<dc:creator>2-й фрилансер</dc:creator>
				<category><![CDATA[Программинг]]></category>
		<category><![CDATA[Работа]]></category>
		<category><![CDATA[собеседование]]></category>

		<guid isPermaLink="false">http://dev4food.ru/?p=660</guid>
		<description><![CDATA[Требуется написать на Delphi программу, «распознающую» расклад в знаменитом пасьянсе, как это изображено на рисунке

]]></description>
			<content:encoded><![CDATA[<p>Требуется написать на Delphi программу, «распознающую» расклад в знаменитом пасьянсе, как это изображено на рисунке</p>
<p style="text-align: center;"><a href="http://dev4food.ru/wp-content/uploads/2009/10/clipboard01.jpg"><img class="size-medium wp-image-661 aligncenter" style="margin-top: 10px; margin-bottom: 10px;" title="Delphi задача на собеседовании" src="http://dev4food.ru/wp-content/uploads/2009/10/clipboard01-300x214.jpg" alt="Delphi задача на собеседовании" width="300" height="214" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dev4food.ru/2009/10/interesnaya-zadacha-dlya-programmistov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
