С острым кодом очистки: resharper - PullRequest
8 голосов
/ 30 декабря 2010

Я только что использовал Resharper , и это заставило меня почувствовать себя так, как будто я вообще не знаю, как кодировать в C #;это дало мне много предложений;немногие из них:

1) SomeObject o = new SomeObject();

Resharper преобразует в:

var o = new SomeObject()

2) this.Loaded += new RoutedEventHandler(MainPage_Loaded);

в

this.Loaded += MainPage_Loaded;

3) преобразовать мои переменные и поставить _ перед всеми переменными экземпляра.

4) Удаление имени родителя класса.Я проверял это на Silverlight.

public partial class MainPage : UserControl

до

public partial class MainPage

5) заменить переменную экземпляра

 this.variable = somevalue

до

 variable = somevalue

Areвсе это действительно необходимо?Это действительно повлияет на эффективность моей программы?Я имею в виду, что хорошего это даст, заменив мои имена классов ключевым словом var.В конце концов var также заменяется именем класса во время компиляции.Это происходит потому, что на запрограммировано , или эти вещи действительно так или иначе влияют?

Ответы [ 4 ]

8 голосов
/ 30 декабря 2010

Это поведение настраивается в настройках ReSharper.Существует сочетание правил очистки кода (например, заменять ли использование на var - я не знаю!), Правил стиля кода (например, именование переменных) и правил форматирования (например, как размещать фигурные скобки).

Я написал статью, в которой дается обзор этих настроек и того, как их можно использовать для формирования стандартов кодирования, а затем автоматически применять при очистке кода:

http://gojisoft.com/blog/2010/05/10/coding-standards-using-resharper/

В конце концов, многие из них обеспокоены стилем кодирования и удалением избыточного кода, они не влияют на скомпилированный код.Вы можете настроить многие из них в соответствии со стилем кодирования вашей команды или команды.

5 голосов
/ 30 декабря 2010

Все ли это действительно необходимо?

Нет необходимости.

Это действительно повлияет на эффективность моей программы?

Это не повлияет на скомпилированный кодтаким образом, что это вообще меняет производительность или семантику.

Я имею в виду, что будет хорошего, если заменить имена моих классов ключевым словом var.В конце концов, var также заменяется именем класса во время компиляции.

Более читаемый код.

Это происходит потому, что он был запрограммирован, чтобы делать или делать эти вещи действительновлияет так или иначе?

Да.Они настраиваются, если они вам не нравятся.

1) Хорошо.

SomeObject o = new SomeObject();

Первый SomeObject является избыточным и бесполезным, а с var он не менее читабелен ивозможно, более читабельный.Кроме того, для сложных определений, таких как

var dictionary = new Dictionary<string, Dictionary<string, List<string>>();

, это намного удобнее для чтения, чем альтернатива.Однако это может быть преувеличено.Например,

string s = "s";

предпочтительнее, чем

var s = "s";

, а

var i = 5;

более

int i = 5;

Обратите внимание, что

var i = 2147483648;

действительно плохо, потому что не сразу понятно, какой тип i.Для не сложных определений я предпочитаю использовать явную типизацию, а не неявную.Кроме того, иногда вы хотите сказать

IFoo foo = new Foo();

, чтобы явно набрать foo an IFoo, тогда как var будет набирать его как Foo.

2) Меньше кодав общем лучше код.

3) Я ненавижу это предложение.Я ненавижу ведущие подчеркивания.Я использую обычные правила именования для своих переменных-членов, и для ясности я предваряю их thisЯ бы отключил эту.

public SomeObject(string name) {
    this.name = name;
}

, на мой взгляд, более читабельно, чем

public SomeObject(string name) {
    _name = name;
}

.

4) Подождите, почему он это делает?Я немного смущен этим.Потому что это частично, а другая часть определения класса наследуется?Я не могу себе представить, что это происходит в случае, когда это меняет семантику.Я бы отключил этот.

5) Мне не нравится этот (см. 3.)

3 голосов
/ 30 декабря 2010

Они не обязательны.

Они соответствуют стандарту кодирования, установленному resharper.Приятно то, что вы можете настроить стандарт кодирования по своему усмотрению.

Прекрасная вещь в Resharper заключается в том, что вы в конечном итоге изучаете различные способы выполнения того, что вы всегда делали определенным образом.

2 голосов
/ 30 декабря 2010

Все эти изменения не должны иметь никакого влияния на скомпилированный код CIL - это всего лишь мнение ReSharper о читабельности самого кода C #.

Вы можете настроить все эти параметры в соответствии с вашими илипотребности отдела.По большей части это вопрос личных предпочтений.

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