ReSharper предложение синтаксиса - PullRequest
3 голосов
/ 12 января 2009

Ключевое слово if в следующем выражении подчеркнуто зеленым цветом ReSharper:

if (readOnlyFields.Contains(propertyName)) return false;

return base.CanWriteProperty(propertyName);

ReSharper предлагает следующее изменение:

return !readOnlyFields.Contains(propertyName) 
    && base.CanWriteProperty(propertyName);

Почему это "лучше"? Я считаю текущий код более читабельным, и результат должен быть таким же, насколько я знаю. Есть мысли?

Ответы [ 4 ]

3 голосов
/ 12 января 2009

Ни один из них не лучше в том смысле, что один из них будет работать лучше, чем другой. (Любая разница будет незначительной.)

Некоторые соглашения о кодировании предполагают, что вы используете один оператор return для каждой функции, чтобы было легко понять, как он работает. Это не жесткое и быстрое правило, и в этом случае довольно очевидно, что происходит. Если вам не нравится это предложение, но вы хотите, чтобы ваш код легко читался другими, я бы предложил следующее:

if (readOnlyFields.Contains(propertyName)) return false;
else return base.CanWriteProperty(propertyName);

Но у тебя тоже все хорошо.

2 голосов
/ 12 января 2009

В таких случаях «читабельность» сильно зависит от личного стиля читателя. Когда вы привыкнете писать вещи в определенном формате, вы также привыкнете читать их так же.

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

Опять же, нет "верного ответа". Вы можете просто отключить это предложение и использовать то, к чему вы привыкли.

2 голосов
/ 12 января 2009

Некоторые люди испытывают отвращение к множественным возвратам из функций.

Кажется, что все отвращение в программировании с течением времени исчезает, и в данный момент это не особенно модно.

2 голосов
/ 12 января 2009

В меню быстрого исправления (Alt + Enter) есть «Параметры исправления» (или что-то в этом роде). Вы можете превратить это конкретное предложение в подсказку или полностью отключить его.

Что касается меня, я предпочитаю ваш оригинал, а не предложение ReSharper.

...