Используя ReSharper, вы можете выбрать правило, чтобы гарантировать, что возвращаемое значение является литералом или переменной для C # - PullRequest
0 голосов
/ 24 апреля 2018

Этот вопрос касается того, поддерживает ли ReSharper такую ​​вещь и как включить проверку такого правила.Это не вопрос конкретного стиля кодирования, стандартного выбора или достоинств.

Я пытаюсь автоматизировать проверку (и в идеале замену) различных шаблонов кода возврата C #.В частности, я хотел бы обнаружить следующее и попросить resharper сделать подсказку / предложение

return SomeFunc(someArgs);
return condition ? litteralA : litteralB;
return someObject.SomeFunction();

Следующее не нужно выделять (но я бы принял их за невинных свидетелей)

return someObject.SomePropertyOrField;

Следующее не должно быть ложно обнаружено / выделено (в идеале ReSharper будет делать простое преобразование, если это возможно)

var someVal = SomeFunc(someArgs);
return someVal;

var result = condition ? litteralA : litteralB;
return result;

var state = someObject.SomeFunction();
return state;

return SomeClass.SomeConst;
return true;
return 0;
return LocalConst;

Может ли последняя версия ReSharper сделать это, и если да, то как это можно сделать?Я настраиваю его на это

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

1 Ответ

0 голосов
/ 24 апреля 2018

Я не собираюсь вдаваться в , почему вы этого хотите; Я уверен, что у вас есть причина (которая была бы замечательной, если бы вы поделились с остальными), но вот одно из решений:

Вы можете использовать Custom Patterns (Параметры | Проверка кода | Пользовательские шаблоны) следующим образом:

ReSharper Custom Patterns

См. Дополнительную информацию здесь: ReSharper - Структурный поиск и замена

...