</p>
Task t = new Task();
t.Name = &quot;Test&quot;;
<p>
</p>
<p>
То решарпер мне предложит поступить следующим образом:
</p>
<p>
</p>
Task t = new Task {Name = &quot;Test&quot;};
<p>
</p>
<p>
Аналогичным образом решарпер предлагает использовать <strong>implicit type variable</strong>:
</p>
<p>
<img src="/image.axd?picture=release_notes_use_var.png" alt="" />
</p>
<p>
Решарпер советует использовать var везде, где это возможно. Такое решение далеко не всегда оправдано, поэтому я отключил этот функционал.
</p>
<p>
<img src="/image.axd?picture=disable-var.jpg" alt="" /><br />
<br />
Зачатки <strong>JetBrains.Annotation</strong> были еще в решарпере версии 2.5. Если помните был такой &quot;Null Reference Analysis&quot;, который оповещал разработчика о возможных NullReferenceException в коде. Чтобы избежать такого анализа разработчики добавляли к свойствам, атрибуты NotNull или CanBeNull, которые решарпер позже использовал для инициализации состояния переменных. В новой же версии количество таких атрибутов значительно увеличилось. Скажем, если вы хотите явно указать, что ваш строковый параметр будет обрабатываться с помощью string.Format, то можете написать следующее
</p>
<p>
</p>
[StringFormatMethod(&quot;key&quot;)]
public void Put(string key, params object[] args) { ... }
<p>
</p>
<p>
После чего вызвав эту функцию<br />
</p>
<p>
</p>
Put(&quot;testing {0}, {1}, {2}&quot;, 1, 2);
<p>
</p>
решарпер подскажет, что переменная для аргумента {2} отсутствует. Но использования этой фичи требует включения нескольких JetBrain библиотек в ваш проект, что несколько смущает...
<p>
Довольно удобным стал <strong>CamelHumps Completion</strong>, позоволяющий писать лишь заглавные буквы ключевых слов, названий классов, переменных:<br />
</p>
<p>
</p>
if(CVM.I.SV(SCV.FU&nbsp;
<p>
</p>
После нажатия магического сочетания клавиш <em>&lt;Ctrl-Shift-Enter&gt;, </em><span>получаем</span>
<p>
</p>
if (CodeViewManager.Instance.SupportsView(StandardCodeViews.FindUsages))
{
}
<p>
</p>
<p>
Как я уже упоминал, теперь решарпер полностью поддерживает <strong>C# 3.0 </strong>и <strong>LINQ</strong>, что не может не радовать.<br />
</p>
<p>
&nbsp;
<img src="/image.axd?picture=release_notes_convert_to_lambda.png" alt="" />
</p>
<p>
<strong>Recent Edits</strong> позволяет быстро получить доступ к недавно редактируемым участкам кода (<em>CTRL + &quot;-&quot;</em> уже просто достал!):
</p>
<p>
&nbsp;
<img src="/image.axd?picture=RecentEdits.png" alt="" />
</p>
<p>
<br />
И в заключение, хочу добавить, что создатели решарпера <a href="http://resharper.blogspot.com/2008/06/resharper-40-gone-diamond.html" title="клятва создателей решарпера">клянутся</a>, что он стал <strong>быстрее</strong>, особенно в <a href="http://resharper.blogspot.com/2008/05/resharper-4-beta.html" title="обработка asp.net">обработке ASP.NET</a> кода.
</p>
<p>
<strong>Полезные ссылки:</strong>
</p>
<p>
<a href="http://www.jetbrains.com/resharper/" target="_blank" title="официальный сайт решарпера">Официальный сайт решарпера</a>
</p>
<p>
<a href="http://www.jetbrains.com/resharper/features/newfeatures.html" target="_blank" title="новые фичи четвертого решарпера">Новые фичи четвертого решарпера</a>&nbsp;
</p>
<p>
<a href="http://www.jetbrains.com/resharper/download/?rs40pr" target="_blank" title="Resharper 4.0">Скачать Resharper 4.0</a>&nbsp;
</p>
<p>
<a href="http://www.jetbrains.com/resharper/buy/?rs40pr" target="_blank">Купить Resharper 4.0</a>&nbsp;
</p>
<p>
<a href="http://resharper.blogspot.com/" target="_blank" title="блог Ильи">Блог Ильи Рыженкова</a>, продукт-менеджера компании JetBrains&nbsp;
</p>
">