Как заставить Resharper использовать имена типов CLR для автоматически сгенерированного кода? - PullRequest
13 голосов
/ 04 ноября 2011

В соответствии с Общими правилами именования использование имен типов CLR (например, String, Int16) должно быть предпочтительнее, чем использование имен типов, специфичных для языка (string, short).).Я обычно следую этому совету.Однако, кажется, Resharper использует специфичные для языка имена типов при генерации кода (рефакторинги, такие как метод extract, создание циклов foreach и т. Д.), Что очень раздражает.

Как я могу заставить Resharper использовать имена типов CLR вместо этого?

Обновление Поскольку многие задаются вопросом, почему кто-то может применять стиль, в котором используется Int32 вместо int или String вместо string, целью было улучшение подсветки синтаксиса: int отображается как ключевое слово, Int32 отображается как тип.Поскольку изменение реализации подсветки кажется излишним, применение типа CLR просто делает свою работу.Это одна из причин, почему это является частью нашего руководства по стилю.

Ответы [ 3 ]

15 голосов
/ 23 августа 2012

Откройте параметры R #, перейдите к стилю кода C #. Или более подробно:

RESHARPER -> Options

Code Editing -> C# -> Code Style

Build-in type naming -> When referencing build-in type, prefer using выберите CLR type name

Для этой функции требуется R # 9.1 или выше .

Если вы привязаны к более старым версиям ReSharper

Было расширение для R # 4.5-5.1 именно с этой целью. Это называется Neovolve . К сожалению, это расширение не было перенесено на более поздние версии R #.

VS 2015

Также для Visual Studio 2015 вы можете отключить предпочтение встроенных предопределенных типов (что приводит к затенению символов в текстовом редакторе) в Tools -> Options Text Editor -> C# -> Code Style -> Prefer intrinsic predefined type keyword*

8 голосов
/ 04 ноября 2011

Эти рекомендации относятся к публичным именам методов в вашем API, например, obj.ReadInt32() (возможно, в сериализаторе).В теле кода (переменные и параметры) он указан меньше.Лично я предпочитаю псевдонимы double, int и т. Д. - как:

  • лучше выделение
  • меньше ввода
  • позволяет избежать проблем с использованием не-ключевых слов, т.е.если у меня есть другой метод / тип / свойство / etc с именем Int32 (глупо, но возможно; где-как int всегда означает global::System.Int32)
  • работает, даже если у вас нет using System;

Лично я бы об этом не беспокоился.R # ничего не делает неправильно .

В качестве отступления - обратите внимание, что есть несколько примеров того, как MS ошибается - один, который приходит на ум, это IDataReader / DbDataReaderс GetFloat() (должно быть GetSingle()).

4 голосов
/ 04 ноября 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...